Стандарты на функции драйверов различных типов устройств:
Disk Systems (#00):
#00. Identify Disk:
Определение принадлежности диска данной системе.
Вход: -
Выход: A=0 - диск принадлежит системе
A<>0 - диск не принадлежит системе
#01. Set system uariables:
Установка системных переменных для работы c данной
системой
Вход: -
Выход: -
#02. Open File:
Открытие файла для работы (запись/чтение).
Вход: IX - описатель файла
Выход: A=0 - файл открыт, A<>0 - ошибка при открытии
#03. Close File:
Закрытие файла, дозапись еще на записанных данных.
Вход: IX - описатель файла
Выход: A - статус
#04. Create File:
Создание файла c нулевой длиной.
Вход: HL - указатель на имя файла
Выход: A=0 - файл создан
A<>0 - файл не создан
#05. Read N Bytes:
Чтение последовательности байт из файла.
Вход: IX - описатель файла
ВС - длина последовательности
HL - адрес загрузки
Выход: -
#0б. Write N Bytes:
Запись последовательности байт в файл.
Вход: IX - описатель файла
ВС - длина последовательности
HL - адрес записи
Выход: -
#07. Set Offset:
Установка позиции в файле.
Вход: IX - описатель файла
ВС - позиция
Е - способ позиционирования: 0 - от начала,
1 - прибавление к текущей
Выход: A=0 - все ОК
A=1 - нет такой позиции (файл короткий)
#08. Delete File:
Удаление файла (принимает во внимание флаг Read Only).
Вход: HL - имя файла
Выход: A=0 - файл удален
A=1 - нет такого файла
A=2 - Read-Only
#09. Set File Attributes:
Установка аттрибутов файла.
Вход: HL - имя файла
C - аттрибуты
Выход: A=0 - все ОК
A=1 - нет такого файла
A=2 - невозможно установить аттрибуты
#0A. Create Directory:
Создание пoддиpектopии.
Вход: HL - имя директории
Выход: A=0 - все ОК
A=1 - нет места в директории
A=2 - невозможно создать директорию
#0В. Delete Directory:
Удаление пустой пoддиpектopии.
Вход: HL - имя директории
Выход: A=0 - все ОК
A=1 - нет такой директории
A=2 - невозможно удалить директорию
#0C. Change directory:
Установка текущей директории.
Вход: HL - имя директории
Выход: A=0 - все ОК
A=1 - нет такой директории
A=2 - невозможно поменять директорию
#0D. Get File Number:
Получение номера файла в каталоге по его имени.
Вход: HL - имя файла
Выход: A=#FF - нет такого файла, остальные значения A -
номер файла
#0Е. Get Catalogue Cell:
Получение информации o файле по его номеру в каталоге
(в формате описателя файла)
Вход: C - номер файла
HL - адрес, куда помещать инфо
Выход: -
#0F. Read N sectors:
Чтение определенного числа секторов.
Вход: HL - адрес загрузки
В - количество секторов
DE - номер начального блока
C - номер сектора в блоке
Выход: A=0 - все ОК
A=1 - несуществующий блок
A=2 - некорректный номер сектора
DE - номер блока после чтения
HL - адрес после чтения
C - номер сектора в блоке
#10. Write N sectors:
Запись определенного числа секторов.
Вход: HL - адрес загрузки
В - количество секторов
DE - номер начального блока
C - номер сектора в блоке
Выход: A - статус (аналогично Read sectors)
DE - номер блока после записи
HL - адрес после записи
C - номер сектора в блоке
#11. Reread FAT buffer:
Обновить буфер FAT.
Вход: -
Выход: -
Character Printing Driuers (#03):
Драйвера печати на экране (32/42/51/б4 символов в строке и др.)
Функции:
#00. Init driuer:
Nнициализация драйвера и настройка к текущему текстовому
окну.
Вход: A=0 - инициализация драйвера
A=1 - восстановления исходного состояния
Выход: ВС - размер символа в пикселах базового режима
Спектрума (2Sбx192). Размер равный #FF
означает, что по этой координате размер
непостоянный (В - у, C - x)
DE - предельные координаты по Х и по Y, доступные
при текстовом окне, равном всему экрану.
#01. Print character:
Вход: A - код символа (#0D - CR+LF)
Выход: -
#02. Set coordinates:
Установка координат печати в координатной системе драй-
вера.
Позиционирование ведется в заданное текстовое окно.
Вход: DE - координаты;
Выход: -
Ограничения для драйверов, работающих на прерываниях:
Драйвер не должен портить такие переменные как:
UNICALL
UNICDRV
TEMPFA
To есть, если вы хотите пользоваться ими, то сохраняйте их
значение перед началом функции и восстанавливайте в конце. Если
вы ими не пользуетесь, но ваш драйвер использует вызовы функций
BIOS через рестарты, то обязательно сохраняйте те байты TEMPFA,
которые использует функция.
Формат драйверов и библиотек в памяти:
В памяти драйвер представлен следующим образом:
┌────────┬────────┬────────────────────────────────────────────┐
│ Offset │ Length │ Description │
├────────┼────────┼────────────────────────────────────────────┤
│ 0 │ 2 │ Номер страницы следующего драйвера │
│ 2 │ 2 │ Адрес следующего драйвера (#FFFF - конец) │
│ 4 │ 1 │ Флаговый байт драйвера (cm. ниже) │
│ 5 │ 1 │ Длина имени драйвера │
│ б │ ... │ Nmя драйвера │
│ ... │ ... │ Тело драйвера │
└────────┴────────┴────────────────────────────────────────────┘
В памяти драйвера расположены в виде цепочки. В начале каждого
драйвера указан адрес следующего драйвера. Так достигается
возможность подключения неограниченного числа драйверов. Если
адрес следующего драйвера равен #FFFF, то текущий драйвер -
последний в цепочке.
Флаговый байт драйвера:
bit 0 - является ли устройством блочного ввода/вывода (нет/да)
bit 1 - управляет ли дисковой системой (нет/да)
bit 2 - нерезидентный/резидентный
bit 3
bit 4
bit 5
bit б
bit 7 - флаг активности драйвера (pезеpвиpoванo для следующей
версии)
На вход драйверу подается в регистре C код функции.
Стандартные названия драйверов:
kbd.dru - клавиатура
mouse.dru - мышь
trdos.dru - драйвер TR-DOS
isdos.dru - драйвер IS-DOS (бЧOk)
msdos.dru - драйвер MS-DOS
hdd.dru - винчестер
ramdisk.dru - RAM-диск
cmos.dru - CMOS (часы, дата и настройки системы)
Стандартные названия библиотек:
graph.lib - графическая библиотека
neos.lib - библиотека функций NeOS
Add driuer (ADDDRV):
Установка нового драйвера (резидентного/нерезидентного)
Вход: HL - адрес драйвера
ВС - его страница
Выход: -
Add library (ADDLIB):
Установка новой библиотеки
Вход: HL - адрес библиотеки
ВС - страница библиотеки
Выход: -
Remoue driuer (REMDRV):
Удаление драйвера
Вход: HL - указатель на имя (в нижней памяти)
Выход: A=0 - удален успешно
A=1 - драйвер не найден
Remoue library (REMLIB):
Удаление библиотеки
Вход: HL - указатель на имя (в нижней памяти)
Выход: A=0 - удалена успешно
A=1 - библиотека не найдена
Open driuer (OPENDRV):
Поиск драйвера
Вход: HL - указатель на имя (в нижней памяти)
Выход: HL - адрес драйвера (#FFFF - драйвер не найден)
ВС - страница драйвера
DE - длина заголовка драйвера
A - флаги драйвера
Open libray (OPENLIB):
Поиск библиотеки
Вход: HL - указатель на имя библиотеки (в нижней памяти)
Выход: HL - адрес библиотеки (#FFFF - библиотека не найдена)
ВС - страница библиотеки
DE - длина заголовка библиотеки
Обязательное условие:
Первые драйвер (любой) и библиотека должны находиться в нижней
памяти (#0000-#BFFF)!
Disk Manager section керналя.
Recognize disk (DISKDET):
Change Driue (CHANDR1):
Find File (FINDFM1):
Формат описателя файла (FD - File Descriptor):
┌──────┬──────┬──────────────────────────┐
│Offset│Length│ Назначение │
├──────┼──────┼──────────────────────────┤
│ 0 │ 1б │ Nmя файла │
├──────┼──────┼──────────────────────────┤
│ 1б │ 4 │ Расширение файла │
├──────┼──────┼──────────────────────────┤
│ 20 │ 1 │ Аттрибуты файла │
│ │ │ бит 7=1 - сектор менялся │
│ │ │ бит 7=0 - сектор не ме- │
│ │ │ нялcя │
├──────┼──────┼──────────────────────────┤
│ 21 │ 2 │ Адрес загрузки файла │
│ 23 │ 2 │ Время создания файла │
│ 25 │ 2 │ Дата создания файла │
│ 27 │ 2 │ Начальный блок файла │
│ 29 │ 4 │ Длина файла │
│ 33 │ 3 │ Nmя устройства файла │
│ 3б │ 2 │ Начальный блок его │
│ │ │ директории │
│ 38 │ 1 │ Номер файла в директории │
│ 39 │ 2 │ Адрес буфера чтения │
│ 41 │ 2 │ Текущий блок файла │
│ 43 │ 1 │ Текущий сектор в блоке │
│ 44 │ 4 │ Позиция в файле │
└──────┴──────┴──────────────────────────┘
Ntoro 48 байт.
Функция Get catalogue cell выдает первые 33 байта описателя.
Стандарты на имена дисковых устройств:
- Floppy Driue. Дисковод
- Hard Driue. Винчестер
- CD Driue. Сидюк
- Ram Disk. RAM-диск
Базовые функции графической библиотеки (graph.lib):
Замечание: при указании координат и размеров старший регистр
пары является координатой/размером по Y, младший - Х.
#00. Clear Screen (CLS):
Очистка экрана, установка постоянных атрибутов и бордюра.
Вход: C - аттрибуты
В - бордюр
Выход: -
Nзmеняеmые регистры: HL, ВС, DE, A
#01. Clear Window (CLW):
Очистка изображения окна (без смены атрибутов)
Вход: ВС - координаты верхнего левого угла окна
DE - размеры окна
Выход: -
Nзmеняеmые регистры: HL, ВС, A
#02. Fill Window With Attribute (FILATR):
Заполнение окна атрибутом
Вход: ВС - координаты верхнего левого угла окна
DE - размеры окна
H - аттpибут
Выход: -
Nзmеняеmые регистры: HL, ВС, A
#03. Put Character Initializer (PUTSINI)
Nнициализация и настройка символьного вывода к новому
текстовому окну
Вход: A=0 - инициализация вывода (установка видеорежима)
A=1 - возвращение базового режима
Выход: ВС - размеры символа в пикселах режима 2Sбx192. Если
размер символа по какой-либо координате является
непостоянным, то размер должен быть равен #FF
DE - предельные координаты по Х и Y при текстовом окне
размером во весь экран
#04. Put Character (PUTCH):
Вывод одиночного символа c учетом атрибутов.
Работает в текстовом окне.
Вход: C - код символа
Выход: -
Nзmеняеmые регистры: -
#05. Put String (PUTS):
Вывод строки символов. Код конца строки - #FF
Работает в текстовом окне.
Вход: HL - адрес строки
Выход: -
Nзmеняеmые регистры: HL, DE, A
#0б. Messager (MESGER):
Вывод строки из таблицы строк. Разделитель строк - #FF
Работает в текстовом окне.
Вход: HL - адрес таблицы
C - номер строки (0 - самая первая строка)
Выход: -
Nзmеняеmые регистры: ВС, HL, DE, A
#07. Print Byte-Number (PNUM8):
Вывод числа в диапазоне 0-255
Работает в текстовом окне.
Вход: C - число
Выход: -
Nзmеняеmые регистры: HL, DE, C, A
#08. Print Word-Number (PNUM1б):
Вывод числа в диапазоне 0-б5535
Работает в текстовом окне.
Вход: HL - число
Выход: -
#09. Scroll Window Up (SCRLUP):
Сдвиг окна вверх на знакоместо вместе c атрибутами
Вход: ВС - координаты окна
DE - размеры окна
Выход: -
Nзmеняеmые регистры: HL, ВС, DE, A
#0A. Scroll Window Down (SCRLDW):
Сдвиг окна вниз на знакоместо вместе c атрибутами
Вход: ВС - координаты окна
DE - размеры окна
Выход: -
Nзmеняеmые регистры: HL, ВС, DE, A
#0В. Scroll Техт Window Up (SCREUP):
Сдвиг текущего текстового окна вверх
Вход: -
Выход: -
Nзmеняеmые регистры: -
#0C. Scroll Техт Window Down (SCREDW):
Сдвиг текущего текстового окна вниз
Вход: -
Выход: -
#0D. Draw Styled Box (DRBOX):
Рисование прямоугольной стилизованной рамки (без атрибутов)
Адрес таблицы стилей - системная переменная STYLES
Вход: ВС - координаты верхнего левого угла рамки
DE - размеры окна
L - стиль (A=0 - ПЗУ).
Выход: -
Nзmеняеmые регистры: HL, ВС, DE, A
#0Е. Draw Window (WINDOW):
Рисование окна
Вход: IX - указатель на описатель окна:
IX+0 - Х (7 бит=0 - не надо тени, =1 - надо тень)
IX+1 - Y
IX+2 - ширина
IX+3 - высота
IX+4 - аттpибут окна
IX+5 - аттpибут тени
IX+б - стиль рамки окна
Выход: -
Nзmеняеmые регистры: HL, ВС, DE, A
Nзmеняеmые регистры: HL, DE, C, A
Nзmеняеmые регистры: -
#0F. Vertical Menu (VMENU):
Вывод и выбор пункта вертикального меню.
Координаты в текстовом окне.
Вход: IX - указатель на описатель меню:
IX+0 - Х
IX+1 - Y
IX+2 - ширина полоски выделения
IX+3 - количество пунктов
IX+4 - цвет невыделеннoгo пункта
IX+5 - цвет выделенного пункта
Е - начальный номер пункта
Выход: Е - номер пункта, Е=#FF - нажат Edit (выход из меню)
Nзmеняеmые регистры: HL, ВС, A
#10. Put sprite (PUTSPR):
Вывод спрайта (цветного/черно-белого).
Вход: HL - начало спрайта
DE - размеры спрайта
ВС - координаты спрайта (7 бит C=0 - черно-белый спрайт,
7 бит C=1 - цветной спрайт)
Выход: -
Nзmеняеmые регистры: HL, ВС, A
Керналь функций BIOS:
System section:
#0057: Sysinfo
#005A: Wait for keypress
#005D: Wait for keypress + click
#00б0: Click sound
#00б3: Exit from а program
#OOбб: NMI handler
Driuers and libraries section:
#0000: Add driuer
#0000: Add library
#0000: Remoue driuer
#0000: Remoue library
#0000: Open driuer
#0000: Open library
Memory manager section:
#0000: RAMinfo
#0000: Change page
#0000: Allocate high memory block
#0000: Allocate low memory block
#0000: Free high memory block
#0000: Free low memory block
#0000: Find maximal length of high memory block
#0000: Reallocate memory мар
#0000: Get page info
#0000: Select 4MB page
#0000: Change page in low memory (#4000-#7FFF,#8000-#BFFF)
Disk manager section:
#0000:
Other functions:
#0000: RBHL
#0000: DBHL
#0000: ZBHL
#0000: ABHL
#0000: DABHL
#0000: AGETCEL
#0000: AGETATR
#0000: SCRTATR
#0000: STRCMP
#0000: ReadSec
#0000: WriteSec
Memory manager section керналя:
RAMinfo (MEMDET):
Получение информации o верхней памяти
Вход: -
Выход: HL - обший объем верхней памяти (в Кб)
DE - свободной верхней памяти (в Кб)
ВС - количество страниц верхней памяти
Change page (CHPAG):
Смена страницы в области #c000-#cfff
Вход: A - номер страницы
Выход: A=0 - ОК
A=1 - нет такой страницы
Allocate high memory block (ALLOCH):
Выделение блока верхней памяти
Вход: C - объем блока
Выход: A=0 - память выделена
A=1 - не хватает непрерывной памяти
HL - адрес блока
ВС - страница блока
Allocate low memory block (ALLOCL):
Выделение блока нижней памяти
Вход: DE - объем блока в байтах
Выход: HL - начальный адрес блока в памяти
Free high memory block (FREEH):
Освобождение блока верхней памяти
Вход: ВС - номер страницы
D - старший байт адреса
Е - количество освобождаемых килобайт
Выход: -
Free low memory block (FREEL):
Освобождение блока нижней памяти
Вход: DE - объем освобождаемой памяти в байтах
Выход: HL - новый предельный адрес нижней памяти
Get maximal length of high memory block (GETMAX):
Получение наибольшего размера блока верхней памяти
Вход: -
Выход: A - объем блока в килобайтах
Reallocate memory мар (MPREALC):
Перемещение карты памяти
Вход: DE - новое положение карты
ВС - новая страница карты
Выход: -
Get page info (PAGINF):
Получение информации o странице
Вход: ВС - страница
Выход: DE - карта занятости страницы
Select 4MB page (HPAGCHG):
Выбор 4-мегабайтной страницы (временно не реализована)
Вход: -
Выход: -
Change page in low memory (CHPAGL):
Смена страницы в нижней памяти (временно не реализована)
Вход: -
Выход: -
Описание командного интерпретатора NeOS u1.0:
Команды интерпретатора:
System commands:
VER - получение информации o версии NeOS (_VER)
МЕМ - получение информации o памяти, доступной сис-
теме (_МЕМ)
CLS - очистка экрана текущими аттрибутами
CLW - очистка текстового окна текущими аттрибутами
COLOR n - установка текущих аттрибутов n
BORDER n - установка бордюра n
PAGE n - переключение на логическую страницу n
CALL n - запуск программы c адреса n
STACK n - установка стека в n
НЕХ - вывод чисел в НЕХ
DEC - вывод чисел в DEC
SILENCE - выключение звука AY
РОКЕ m n - занесение в ячейку m 8-битового числа n
РЕЕК m - вывод содержимого ячейки m (1 байт)
DPOKE m n - занесение в ячейку m 1б-битового числа n
DPEEK m - вывод содержимого ячеек m и m+1 в виде 1б-би-
тового числа
TEXTWIN x у w h - установка текстового окна
MEMMAP - вывод карты памяти
Disk commands:
LOAD "а" [n] [m] - загрузка файла "а" по адресу n длиной m
SAVE "а" n m - запись файла "а" c адреса n длиной m
RUN "а" [param] - запуск файла "а" c передачей ему параметров
param
DRIVE n - выбор дисковода n
CD ["path"] - установка текущей директории "path". Без пути
показывает текущую директорию
DIR [w] - вывод каталога, если задействован ключ w, то
ожидать нажатия любой клавиши при достижении
нижнего края экрана
REN "а" "Ь" - переименовать файл "а" в "Ь"
DEL "а" - удалить файл "а". Read-only - c пoдтвеpжде-
нием
MKDIR "name" - создание директории "name"
RMDIR "name" - удаление пустой директории "name"
ТУРЕ "name" - вывод файла на экран
Other functions керналя:
Go lower Ьу pixel (RBHL):
Go higher Ьу pixel(DBHL):
Go lower Ьу cell (ZBHL):
Go lower ат attributes (ABHL):
Go higher ат attributes (DABHL):
Calculate screen address (AGETCEL):
Calculate attribute address (AGETATR):
Conuert screen address to attribute (SCRTATR):
String comparision (STRCMP):
Сравнение последовательностей байт
Вход: HL - адрес одной строки
DE - адрес другой строки
C - количество байт для сравнения
Выход: Z - строки идентичны
NZ - строки различны
Nзmеняеmые регистры: В
Read Sectors (READS):
Чтение блока секторов
Вход: HL - начальный адрес
DE - начальные трек/сектор
В - длина в секторах
Выход: HL - конечный адрес
DE - конечные трек/сектор
Nзmеняеmые регистры: В, C
Write Sectors (WRITES):
Вход: HL - адрес записи
DE - трек/сектор
В - длина записываемого блока в секторах
Выход: HL - конечный адрес
DE - конечные трек/сектор
Nзmеняеmые регистры: В, C
Other functions керналя:
Go lower Ьу pixel (RBHL):
Go higher Ьу pixel(DBHL):
Go lower Ьу cell (ZBHL):
Go lower ат attributes (ABHL):
Go higher ат attributes (DABHL):
Calculate screen address (AGETCEL):
Calculate attribute address (AGETATR):
Conuert screen address to attribute (SCRTATR):
String comparision (STRCMP):
Сравнение последовательностей байт
Вход: HL - адрес одной строки
DE - адрес другой строки
C - количество байт для сравнения
Выход: Z - строки идентичны
NZ - строки различны
Nзmеняеmые регистры: В
Read Sectors (READS):
Чтение блока секторов
Вход: HL - начальный адрес
DE - начальные трек/сектор
В - длина в секторах
Выход: HL - конечный адрес
DE - конечные трек/сектор
Nзmеняеmые регистры: В, C
Write Sectors (WRITES):
Вход: HL - адрес записи
DE - трек/сектор
В - длина записываемого блока в секторах
Выход: HL - конечный адрес
DE - конечные трек/сектор
Nзmеняеmые регистры: В, C
System section керналя:
Sysinfo (SYSDET):
Получение информации o системе.
Вход: -
Выход: A - код компьютера
ВС - версия (иВ.C)
HL - адрес ID-стринга
Nзmеняеmые регистры: -
Wait for keypress (KEYWAIT):
Ожидание нажатия клавиши
Вход: -
Выход: A - код клавиши
Nзmеняеmые регистры: HL
Wait for keypress + click (KEYWCLC):
Ожидание нажатия клавиши + щелчок по нажатию
Вход: -
Выход: A - код клавиши
Nзmеняеmые регистры: HL
Nзmеняеmые регистры: -
Click sound (CLICK):
Короткий щелчок на Beeper (зависит от 1 бита FLAGS1)
Вход: -
Выход: -
Nзmеняеmые регистры: -
Non-Maskable Interrupt (NMI) handler (NMI_R):
Обработчик немаскируемых прерываний.
Вход: -
Выход: -
Exit from а program (EXPROG):
Выход из программы, восстановление и разрешение прерываний
BIOS.
Стек восстанавливается из STACK_P, затем переход по PROGRET
Вход: -
Выход: -
Nзmеняеmые регистры: SP, HL, A
Системные переменные NeOS
Постоянная системная область:
HK_ERR (2Ь): Адрес обработчика ошибок
HK_OS (2Ь): Адрес менеджера функций дополнительной OS
HK_USR1 (2Ь): Адрес пользовательского рестарта RST #28
HK_USR2 (2Ь): Адрес пользовательского рестарта RST #30
HK_NMI (2Ь): Адрес обработчика NMI
L_GFX (2Ь): Адрес текущей графической библиотеки
Системные переменные
STACK_P (2Ь): Значение стека перед вызовом программы
PROGRET (2Ь): Адрес перехода при выходе из программы
ERR_SP (2Ь): Значение стека при серьезной ошибке
ERR_JP (2Ь): Адрес возврата при серьезной ошибке
DRV_BEG (4Ь): Указатель на начало цепочки неpезидентных драйве-
ров
LIB_BEG (4Ь): Указатель на начало цепочки библиотек
RES_BEG (4Ь): Указатель на начало цепочки резидентных драйверов
VARLEN (1Ь): Длина блока перемещаемых переменных
SYSRET (1Ь): Команда RET.
F_DRV (7Ь): Пустой драйвер. Переходник между ROM и RAM
F_LIB (7Ь): Пустая библиотека
F_RES (7Ь): Пустой резидентный драйвер
Перемещаемый блок переменных:
scratr (1Ь): Экранные атрибуты
atrf (1Ь): Атрибутная маска
scrcrd (2Ь): Координаты на экране
fontadr (2Ь): Адрес текущего фонта
border (1Ь): Цвет бордюра
styles (2Ь): Адрес стилей для рамок окон
textwin (4Ь): Параметры текстового окна
limcrd (2Ь): Границы координат в текстовом окне
lastkey (1Ь): ASCII-код последней нажатой клавиши
repwait (1Ь): Задержка перед автоповтором клавиши
reprate (1Ь): 4actota автоповтора
repcnt (1Ь): Внутренняя переменная-счетчик
lastki1 (1Ь): Внутренняя переменная-флаг
pagemp (4Ь): Указатель на конец карты памяти
ramtop (2Ь): Верхняя граница нижней памяти
curpage (2Ь): Текущая страница
ports (4Ь): Содержание портов управления памятью
driue (3Ь): Nmя текущего устройства
cddadr (2Ь): Адрес текущего драйвера дисковой системы
fatbuf (2Ь): Адрес буфера FAT
secpt (1Ь): Число секторов на треке
seclen (1Ь): Код длины сектора
cblock (2Ь): Текущий блок
cbsec (1Ь): Текущий сектор в блоке
curdbl (2Ь): Начальный блок текущей директории
secpb (1Ь): Число секторов в блоке
pnt_x (2Ь): Х-координата курсора указывающего устройства
pnt_у (2Ь): Y-координата курсора
brd_l (2Ь): Левая граница области, доступной указывающеmу уст-
poйcтву
brd_r (2Ь): Правая граница области
brd_u (2Ь): Верхняя граница области
brd_d (2Ь): Нижняя граница области
buttons (1Ь): Состояние кнопок:
bit 0
bit 1
bit 2
sens_x (1Ь): Чувствительность по Х
sens_у (1Ь): Чувствительность по Y
асс_x (1Ь): Ускорение по Х
асс_у (1Ь): Ускорение по Y
flags1 (1Ь): Флагoвая переменная
bit 0: Нажатие клавиши (нет/да)
bit 1: Звук на beeper (да/нет)
bit 2: Режим печати символов (Replace/XOR)
bit 3: Текущая страница видеопамяти
bit 4: LAT/RUS
bit 5: Caps Lock (нет/да)
bit б: Флаг для процедуры печати символов
bit 7: Режим вывода чисел (DEC/НЕХ)
flags2 (1Ь): Флагoвая переменная
bit 0: Задержка на раскрутку диска (нет/да)
Credits:
========
Программирование:
Megus:
- BIOS, NeOS;
- набор драйверов.
MAV:
- низкоуровневые процедуры работы c диском;
- адаптация ZASM в среду NeOS.
Tigrr:
- BW Disk Master u1.0
Дизайн:
Aztec Graphics (Xtrimer).
Консультации, советы, критика:
MAV:
- советы и консультации по самой концепции BIOS.
Denis Dmitrieu:
- советы по реализации системы драйверов;
- конструктивная критика.
Roman Milukou:
- автор идеи инсталлятора.
Andrey Isaeu:
- советы по реализации файловой системы.
Tim Kelly:
- советы по реализации системы драйверов.
Pauel Fedin:
- автор идеи BIOS;
- конструктивная критика.
Люди, которые получат полный комплект NeOS бесплатно:
Roman Milukou 2:4б1б/47.8
Denis Dmitrieu 2:4б1/110.5
Roman Milukou:
- автор идеи инсталлятора.
Andrey Isaeu:
- советы по реализации файловой системы.
Tim Kelly:
- советы по реализации системы драйверов.
Pauel Fedin:
- автор идеи BIOS;
- конструктивная критика.
Люди, которые получат полный комплект NeOS бесплатно:
Roman Milukou 2:4б1б/47.8
Denis Dmitrieu 2:4б1/110.5
Andrey Isaeu 2:502б/18.42
Tim Kelly 2:4б5/157.15
Pauel Fedin 2:5020/б59.55
Первый исторический запуск NeOS на Merycobckom Скорпе:
22.08.1998 в 11:59:23
ОБЗОР СИСТЕМНОГО СОФТА
Other articles: