Home | FCOS | FCOS для программиста

Константы


В этой части содержатся следующие параграфы книги: константы FCOS, имена селекторов, атрибуты дескрипторов, синонимы функций HSV.


1.4. Константы FCOS.

 

1.4.1. Общая информация.

Константы FCOS находятся в файлах "LISTFCOS\fcoscusr.inc" и "LISTFCOS\fcoscsys.inc", которые содержат, соответственно, общеиспользуемые и системные константы. Основная цель использования констант — удобство внесения исправлений. Если сменится число, описываемое константой, не будет необходимости исправлять исходные тексты FCOS и приложений. Всё, что нужно — исправить константу и перекомпилировать программы.

Кроме того, константы повышают "читабельность" листингов программ, т.к. безликие числа при замене на константы обретают осмысленные имена.

Константы FCOS разделены на несколько групп, каждая из которых будет подробно рассмотрена. Константы группируются (для удобства поиска и рассмотрения) по назначению, а не в алфавитном порядке.

 

1.4.2. Имена селекторов.

Важнейшие селекторы глобальных дескрипторов имеют имена. В основном, этими именами пользуется ядро FCOS, а не приложения, т.к. глобальные дескрипторы имеют наивысший уровень привилегий процессора. Приложения могут лишь обмениваться самими селекторами, не осуществляя доступ к сегментам. Имена селекторов располагаются в файле "LISTFCOS\fcoscsys.inc", который приложения обычно не подключают, хотя драйверам физических устройств селекторы ядра FCOS могут понадобиться.

SEGfcGDT EQU 008h

Селектор указывает на сегмент глобальных дескрипторов. Используется для доступа к таблице глобальных дескрипторов (в том числе и самим процессором).

SEGmemAL EQU 010h Селектор описывает всю адресуемую память (0..4294967295 байты), в том числе физически присутствующую, виртуальную и отсутствующую вообще. Используется для прямого вмешательства ядра FCOS в работу приложений (например, при отладке) и других системных целей: операций с дескрипторами, обслуживание верхней памяти и страничной адресации.SEGfcDAT EQU 018h Селектор описывает сегмент общих данных FCOS. Это один из самых важных сегментов FCOS. Там хранятся системные таблицы ядра FCOS, сообщения об ошибках, глобальные переменные и т.п.SEGtbDAT EQU 020h Селектор указывает на текстовую область видеоадаптера. Используется для непосредственного вывода текстовых сообщений при авариях FCOS, т.е. тогда, когда невозможно дальнейшее функционирования графической подсистемы.SEGfcSTK EQU 028h Селектор указывает на сегмент стека ядра FCOS. На этом стеке начинает работать FCOS после перехода в Protected Mode.SEGfcCOD EQU 030h Селектор указывает на сегмент кодов ядра FCOS. Эти коды имеют наивысший уровень привилегий процессора и содержат важнейшие системные процедуры.SEG_i740 EQU 038h Селектор указывает на область памяти, где находится окно графического буфера видеоадаптера. Через это окно ведётся вывод графики непосредственно в память адаптера.SEGalCOD EQU 040h Селектор указывает на дескриптор, аналогичный "SEGfcCOD EQU 030h", но с признаком данных, а не кодов. Через этот селектор производится модификация кодов ядра FCOS.SEGfcTBR EQU 048h Селектор указывает на сегмент данных рабочего стола. В этом сегменте хранятся данные и таблицы рабочего стола и его подобъектов.SEGfcTSA EQU 050h Селектор указывает на сегмент данных о состоянии системных задач (TSS), в т.ч. задачи V86 и Менедженера Виртуальных Машин.SEGfcMSC EQU 058h

Селектор указывает на сегмент данных мыши. SEGfcWND EQU 060h

Селектор указывает на стек открытых окон.

SEGfcKBD EQU 068h

Селектор указывает на сегмент данных клавиатуры.

SEG_Tv86 EQU 1E0h Селектор указывает на сегмент состояния задачи (TSS) V86.SEG_Iv86 EQU 1E8h Селектор указывает на сегмент таблицы дескрипторов прерываний V86.SEG_Dv86 EQU 1F0h Селектор указывает на "плавающий" сегмент для наложения "заплат" Монитором V86.SEG_Sv86 EQU 1F8h

Селектор указывает на сегмент стека V86.SEG_TSS0 EQU 200h Селектор указывает на сегмент состояния задачи (TSS) задачи №0.SEG_LDT0 EQU 208h Селектор указывает на сегмент с таблицей локальных дескрипторов (LDT) задачи №0.

1.4.3. Атрибуты дескрипторов. Дескрипторы сегментов и системные дескрипторы различаются битовыми полями атрибутов. Для наиболее употребительных атрибутов дескрипторов определены синонимы–константы.

Атрибуты дескрипторов используются только ядром FCOS при инициализации дескрипторов (запуск новой задачи, операции с верхней памятью, работа V86).

Некоторы константы закомментированы, т.е. их нельзя использовать, но они могут появиться в следующих версиях FCOS.

dscrNORM EQU 00000000b

Старшие атрибуты любого сегмента (по умолчанию).

dscrCODE EQU 10011010b

Сегмент кода с разрешением чтения.

dscrDATA EQU 10010010b

Обычный сегмент данных.

dscrSTCK EQU 10010010b

Сегмент стека (как данных). В дальнейшем планируется перейти на сегмент стека, расширяющийся сверху–вниз (т.е. EQU 10010110b).

dscrLDTR EQU 10000010b

Дескриптор таблицы локальных дескрипторов.

dscrTSKo EQU 10001001b

Свободный сегмент состояния задач.

;dscrTSKc EQU 10001011b

Занятый сегмент состояния задач. Не используется.

;dscrCALL EQU 11101100b

Шлюз вызова i386. Не используется.

dscrINTR EQU 10001110b

Шлюз прерывания i386. При входе в отработчик прерывания запрещаются (IF=0, CLI).

dscrINTR EQU 10001111b

Шлюз ловушки i386. При входе в отработчик флаг прерываний (IF) не изменяется.

;dsc3CODE EQU 11111010b

Сегмент кода с разрешением чтения. Низший (=3) уровень привилегий. Не используется.

;dsc3DATA EQU 11110010b

Обычный сегмент данных. Низший (=3) уровень привилегий. Не используется.

;dsc3STCK EQU 11110010b

Сегмент стека (как данных). В дальнейшем планируется перейти на сегмент стека EQU 11110110b. Низший (=3) уровень привилегий. Не используется.

dsc3TSKo EQU 11101001b

Свободный сегмент состояния задач. Низший (=3) уровень привилегий. Используется для задачи V86.

;dsc3INTR EQU 11101110b

Шлюз прерывания i386. Низший (=3) уровень привилегий. Не используется.

 

1.4.4. Синонимы функций HSV.

Прерывания, доступные приложениям имеют синонимы–константы. Никогда не пользуйтесь непосредственно числами при вызове прерываний, т.к. в следующих версиях FCOS возможны изменения значений констант. Имена прерываний имеют префикс "INTfc".

Кроме имён прерываний в данной главе описываются номера процедур HSV. Имена процедур имеют префикс "i". Для вызова нужной процедуры HSV из приложения необходимо занести в регистр AX имя процедуры (с префиксом "i"), а затем вызвать прерывание (с префиксом "INTfc").

Некоторые константы закомментированы, т.к. пока не реализованны (или не отлажены) процедуры, для которых зарезервированы места в HSV. В следующих версиях FCOS эти процедуры станут работоспособны, а константы будут доступны приложениям.

INTfcTSV EQU 030h

Task Super Visor. Это прерывание переключает задачи, вызывая процедуру "TaskSwit". Для работы вытесняющей многозадачности после каждого прерывания таймера производится переключение задач. Если приложение находится в состоянии ожидания, рекомендуется добровольный вызов INTfcTSV, т.к. это ускорит работу всей системы.

INTfcDBL EQU 031h

DeBugger Listing. Прерывание вызывает встроенный во FCOS системный отладчик (см. модуль "\LISTFCOS\fcosdbgr.inc"). После работы отладчика управление передаётся в точку вызова и приложение продолжает работать.

INTfcSTA EQU 002h

Stop TAsk. Прерывание приостанавливает работу приложения (его текущий приоритет становится равным нулю). Вызов этого прерывания необходим для обслуживания интерфейса GUI. Если приложение работает (текущий приоритет не нулевой), процедура Control задачи №0 при обнаружении элементов пользовательского интерфейса только меняет указатели мыши. После вызова INTfсSTA становится возможным вызов отработчиков (системных и пользовательских), таких как: перетаскивание и растяжение окна, выбор пиктограммы, попадание в активную область и др.

INTfcBas EQU 040h

Базовые процедуры HSV. Следующий список констант — номера базовых процедур FCOS: это инициализации и начальные загрузчики Protected Mode, а так же системные процедуры, не вошедшие ни в какое другое прерывание HSV.

iInitFCOS EQU 00000h

Начальная инициализация FCOS. Используется вне HSV загрузчиком системы ещё в Real Mode. Вызов во время работы FCOS запрещён. Данная процедура помещена в HSV для единообразия списка процедур.

iDeInFCOS EQU 00001h

Деинициализация FCOS. Процедура производит следующие действия: Завершает работу всех приложений. Сохраняет изменения системы. Производит переход в Real Mode. Возвращается в MS-DOS с сообщением о нормальном завершении работы FCOS. Сообщение сопровождается табличкой с координатами Fwcs Corporation и отображается в текстовом режиме 40x25. После нажатия любой клавиши происходит переключение на текстовый режим 80x25 и появляется приглашение DOS.

iQuitErr EQU 00002h

Деинициализация FCOS с выдачей сообщения об ошибке. Выполняет те же действия, что и DeInFCOS, но после выхода в MS-DOS выдаёт сообщение об ошибке, номер которого (см. константы ErrXXXXX) передаётся в процедуру в регистре CL.

iSetTimFC EQU 00400h

Изменение счётчика "тиков" таймера FCOS. Каждое прерывание таймера (около 1/18 секунды) FCOS производит наращивание тридцатидвухбитного счётчика [TimerTik]. Данная процедура помещает в эту переменную содержимое регистра EBX.

iGetTimFC EQU 00401h

Чтение счётчика "тиков" таймера FCOS. Переменная [TimerTik] из сегмента глобальных данных FCOS (SEGfcDAT) возвращается в регистре EBX.

INTfcKrn EQU 041h

Обслуживание задач FCOS. В этом блоке HSV находятся процедуры, обслуживающие задачи (приложения или их части). С помощью этих процедур реализуется корректная работа FCOS и ресурсов системы, не допускающих одновременное пользование.

iLdRnTask EQU 00003h

Запуск задачи. Процедура загружает приложение (*.fca) FCOS, имя которого задаётся в регистрах DI:EDX. Верхняя память динамически выделяется всем сегментам приложения, указанным в заголовке файла, а так же таблицам TSS и LDT приложения. Данному приложению выделяется задача с заданным в заголовке приоритетом. После всех приготовлений эта задача начинает исполняться наряду с уже запущенными.

iTaskSwit EQU 00004h

Смена задачи. Делает то же, что и прерывание INTfcTSV.

iDostup EQU 00100h

Доступ к нереентантным объектам. FCOS — многозадачная система, но некоторые процедуры не могут быть вызваны, если они уже выполняются (по вызову другой задачи). Для сохранения целостности системы FCOS содержит флаги доступа к защищаемым компонентам. Процедура Dostup проверяет компонент с номером в регистре CL на занятость. В случае занятости производится переключение задач до освобождения компонента. После освобождения процедура возвращает управление вызвавшей её задаче.

iDostOut EQU 00101h

.

iDostup86 EQU 00102h

.

iIniV86Rn EQU 00103h

.

INTfcScr EQU 042h ; Работа в графическом режиме.

.

iInitScrn EQU 00000h ; Инициализация графического экрана.

.

iDeInScrn EQU 00001h ; Инициализация текстового экрана.

.

iAdrPix EQU 00002h

.

iDrwGamma EQU 00003h ; Рисует текущую цветовую палитру.

.

iNewScrPg EQU 00004h

.

iSetPix EQU 00100h ; Устанавливает точку (BX,DX) цветом CH.

.

iSetLin EQU 00101h ; Чертит линию (BX,DX)-(SI,DI) цветом CH.

.

iSetBox EQU 00102h ; Закрашенный прямоуг. (BX,DX)-(SI,DI) цветом CH.

.

iSetRct EQU 00103h ; Контур прямоуг-ка (BX,DX)-(SI,DI) цветом CH.

.

iSetCir EQU 00104h ; Окружность (BX,DX),DI, цветом CH.

.

iWhoPix EQU 00106h ; Определяет цвет точки : CH=WhoPix(BX,DX).

.

iSetPixWn EQU 00200h ; Устанавливает точку (BX,DX) цветом CH.

.

iSetLinWn EQU 00201h ; Чертит линию (BX,DX)-(SI,DI) цветом CH.

.

iSetBoxWn EQU 00202h ; Закрашенный прямоуг. (BX,DX)-(SI,DI) цветом CH.

.

iSetRctWn EQU 00203h ; Контур прямоуг-ка (BX,DX)-(SI,DI) цветом CH.

.

iSetCirWn EQU 00204h ; Окружность (BX,DX),DI, цветом CH.

.

iWhoPixWn EQU 00206h ; Определяет цвет точки : CH=WhoPix(BX,DX).

.

;iGetPix EQU 00300h

.

;iPutPix EQU 00301h

.

;iPprPix EQU 00302h

.

;iGetLin EQU 00303h

.

;iPutLin EQU 00304h

.

;iPprLin EQU 00305h

.

iGetBox EQU 00306h

.

iPutBox EQU 00307h

.

iPprBox EQU 00308h

.

iGetRct EQU 00309h

.

iPutRct EQU 0030Ah

.

;iPprRct EQU 0030Bh

.

;iGetCir EQU 0030Ch

.

;iPutCir EQU 0030Dh

.

;iPprCir EQU 0030Eh

.

iGetBoxWn EQU 00406h

.

iPutBoxWn EQU 00407h

.

INTfcMou EQU 043h ; Работа с мышью.

.

iLd_Mouse EQU 00000h

.

iMVisor EQU 00002h

.

iSetCursor EQU 00003h

.

iSetMouse EQU 00100h

.

iResMouse EQU 00101h

.

iIf1Mouse EQU 00102h

.

iPU1Mouse EQU 00103h

.

iKillMous EQU 00200h

.

iDrawMous EQU 00201h

.

iBoxMouse EQU 00202h

.

iMouLf1Pr EQU 00300h

.

iMouRt1Pr EQU 00302h

.

iMouXYget EQU 00400h

.

iMouXYgWn EQU 00401h

.

INTfcDsk EQU 044h ; Работа с диском.

.

iSaveFile EQU 00000h

.

iLoadFile EQU 00001h

.

iSaveScrn EQU 00003h

.

;iDelFile EQU 00002h

.

iOpenFilR EQU 00200h

.

iCreatFil EQU 00203h

.

iCloseFil EQU 00204h

.

i_LdSmlBl EQU 00300h

.

i_LdBigBl EQU 00301h

.

i_SvSmlBl EQU 00302h

.

i_SvBigBl EQU 00303h

.

INTfcMus EQU 045h ; Функции работы с музыкой.

.

iInitMusc EQU 00000h

.

iDeInMusc EQU 00001h

.

iContMusc EQU 00002h

.

iRePlMusc EQU 00003h

.

iMusicVis EQU 00100h

.

iSayFones EQU 00101h

.

iWhtNoise EQU 00200h ; Генерирует "Белый шум" продолжительностью CX.

.

INTfcMem EQU 046h ; Управление памятью.

.

iInitMem EQU 00000h ; Инициализация верхней памяти.

.

iDeInMem EQU 00001h ; Закрытие доступа к верхней памяти.

.

iTestMem EQU 00002h ; Тестирование верхней памяти.

.

iAlClMem EQU 00003h ; Обнуление всей памяти.

.

iSizeMem EQU 00004h ; Возвращает максимальный адрес физической памяти.

.

iFreeMem EQU 00005h ; Возвращает размер свободной памяти в байтах.

.

iGetMemBl EQU 00100h ; Выделение памяти. in: ECX байт; out: ES-дескр LDT.

.

iPutMemBl EQU 00101h ; Возвращение памяти в кучу.

.

iReSzMemB EQU 00102h ; Изменение размера памяти.

.

INTfcMat EQU 047h ; Работа с математикой.

.

iInitMath EQU 00000h ; Инициализация математического сопроцессора.

.

iDeInMath EQU 00001h ; Деинициализация математического сопроцессора.

.

iVectEquv EQU 00100h ; Векторное присваивание. BP:ECX = SI:EBX.

.

iVectMulV EQU 00101h ; Вект. произвед. BP:ECX = SI:EBX ^ DI:EDX.

.

iVectLeng EQU 00102h ; Вычисление нормы вектора. BP:ECX = !(SI:EBX).

.

iVectNorm EQU 00103h ; Нормализация вектора. BP:ECX = Normal(SI:EBX).

.

iVectMulN EQU 00104h ; Вектор на число. BP:ECX = SI:EBX*число(DI:EDX).

.

iVectMulS EQU 00105h ; Скаляр. произв. число(BP:ECX) = SI:EBX & DI:EDX.

.

iVectMulK EQU 00106h ; Покомпонентное произв. BP:ECX = SI:EBX * DI:EDX.

.

iVectSumK EQU 00107h ; Покомпонентное сложение. BP:ECX=SI:EBX + DI:EDX.

.

iVectClip EQU 00108h ; Ограничивает до [0,1]. BP:ECX = Clip(SI:EBX).

.

iVectCmKl EQU 00109h ; CX=(boolean)(SI:EBX < DI:EDX).

.

iRandom16 EQU 0010Ah ; Генерирует псевдослучайное число. BX=RAND(BX).

.

iModRnd16 EQU 0010Bh ; Огранич. случ. число. CX=(RAND(BX)[=BX])%(CX).

.

INTfcWnd EQU 048h ; Работа с окнами.

.

iWindow EQU 00000h ; Открытие окна.

.

iWindKill EQU 00001h

.

iWindCalc EQU 00100h

.

iWindDraw EQU 00101h

.

iWindPict EQU 00102h

.

iWaitQuit EQU 00200h

.

iWaitQiNK EQU 00201h

.

iGetAdrCA EQU 00202h

.

iGtAcSize EQU 00203h

.

iSetQCtrl EQU 00204h

.

INTfcPct EQU 049h ; Работа с пиктограммами.

.

iDrawPict EQU 00000h

.

iDrawOneP EQU 00001h

.

iSetAct EQU 00100h

.

iTBR_Pict EQU 00200h

.

i_DrShPic EQU 00300h

.

INTfcTxt EQU 04Ah ; Работа с текстом.

.

iTextChar EQU 00000h

.

iTextStr EQU 00001h ; Печать строки (ES:BP) в FCOS - окне.

.

iTextHome EQU 00100h

.

iTextLine EQU 00101h

.

iTextClr EQU 00102h

.

iTextScrl EQU 00103h

.

iTextRang EQU 00104h

.

iDrw1Symb EQU 00200h

.

iAddLnTxt EQU 00201h

.

inHexPr04 EQU 00300h

.

inHexPr08 EQU 00301h

.

inHexPr16 EQU 00302h

.

iPrn5Symb EQU 00400h

.

INTfcKey EQU 04Bh ; Работа с клавиатурой.

.

iInputStr EQU 00000h

.

iKeyReadP EQU 00100h ; Чтение кода символа (в AL) (с ожиданием).

.

iKeyPress EQU 00101h

.

iKeyToggl EQU 00102h

.

iKeyModif EQU 00103h

.

iKeyReadN EQU 00104h

.

iKeyPutNw EQU 00105h

.

iKeyClear EQU 00106h

.

 

1.4.5. Имена селекторов.

Важнейшие селекторы глобальных дескрипторов имеют имена. В основном, этими именами пользуется ядро FCOS, а не приложения, т.к. глобальные дескрипторы имеют наивысший уровень привилегий процессора. Приложения могут лишь обмениваться самими селекторами, не осуществляя доступ к сегментам.; Общесистемные константы.iDOS EQU 021h ; Вызов функции MS-DOS.NoSwTask EQU 0 ; Запрет на переключение задач.GoSwTask EQU 1 ; Разрешение переключения задач.PB EQU BYTE PTR ; Аргумент - байт.

PW EQU WORD PTR ; Аргумент - слово.

PD EQU DWORD PTR ; Аргумент - двойное слово.

PF EQU FWORD PTR ; Аргумент - полуторное слово (DD+DW).

NULL EQU 0 ; Ноль - адрес.

SC_ICW EQU 15 ; Количество интерфейсных пиктограмм.

SC_CUR EQU 20 ; Количество указателей мыши.

SC_TBR EQU 30 ; Количество пиктограмм рабочего стола.

XLW EQU 16 ; Ширина и высота

YLW EQU 16 ; интерфейсных пиктограмм.

XLC EQU 24 ; Ширина и высота

YLC EQU 24 ; указателей мыши.

SZW EQU 260 ; Размер графики интерфейсной пиктограммы.

SZC EQU 580 ; Размер графики указателя мыши в байтах.

SZS EQU 1028 ; Размер графики средней пиктограммы.

SZB EQU 2308 ; Размер графики пиктограммы рабочего стола.

STK_SIZE EQU 6144 ; Размер стека FCOS MAIN 386 (TASK0).

STK86SZ0 EQU 2048 ; Размер стека V86 LEVEL0.

STK86SZ3 EQU 2048 ; Размер стека V86 LEVEL3.

TerminLN EQU 3072 ; Размер памяти под шрифт "Terminal".

DecoraLN EQU 192 ; Размер памяти под шрифт "Decorat".

KEYMAXSC EQU 64 ; Количество символов в буфере клавиатуры.

SC_ANG EQU 1280 ; Количество данных в таблице.

OFFSIN EQU 256*4 ; Байтовый сдвиг таблицы для SIN.

 

1.4.6. Имена с.

Важнейшие селекторы глобальных дескрипторов имеют имена. В основном, этими именами пользуется ядро FCOS, а не приложения, т.к. глобальные дескрипторы имеют наивысший уровень привилегий процессора. Приложения могут лишь обмениваться самими селекторами, не осуществляя доступ к сегментам.; Статус пиктограммы.ICO_NRM EQU 0 ; Нормальная средняя пиктограмма.ICO_ACT EQU 1 ; Активная средняя пиктограмма.ICO_KIL EQU 2 ; Заторможенная средняя пиктограмма.ICO_SMN EQU 3 ; Нормальная маленькая пиктограмма.

ICO_SMK EQU 4 ; Заторможенная маленькая пиктогр.

ICO_BIG EQU 5 ; Пиктограмма для TaskBar.

 

1.4.7. Имена селекторов.

Важнейшие селекторы глобальных дескрипторов имеют имена. В основном, этими именами пользуется ядро FCOS, а не приложения, т.к. глобальные дескрипторы имеют наивысший уровень привилегий процессора. Приложения могут лишь обмениваться самими селекторами, не осуществляя доступ к сегментам.; Коды ошибок для QuitErr.???NO_DEL EQU 8 ; Не могу удалить файл.1.4.8. Имена селекторов. Важнейшие селекторы глобальных дескрипторов имеют имена. В основном, этими именами пользуется ядро FCOS, а не приложения, т.к. глобальные дескрипторы имеют наивысший уровень привилегий процессора. Приложения могут лишь обмениваться самими селекторами, не осуществляя доступ к сегментам.; Названия указателей мыши.CURarrow EQU 0 ; Указатель (пустой) области.CURkrest EQU 1 ; Ввод графических данных.CURchasi EQU 2 ; Ожидание окончания расчётов.CURnelsa EQU 3 ; Запретная область или действие.

CURpalez EQU 4 ; Пиктограмма под мышью.

CURdisk5 EQU 5 ; Ожидание окончания операции с диском.

CURa_all EQU 6 ; Перемещение окна.

CURa_up EQU 7 ; Растяжение вверх.

CURa_dn EQU 8 ; Растяжение вниз.

CURa_lf EQU 9 ; Растяжение влево.

CURa_rt EQU 10 ; Растяжение вправо.

CURa_ul EQU 11 ; Растяжение вверх-влево.

CURa_dr EQU 12 ; Растяжение вниз-вправо.

CURa_ur EQU 13 ; Растяжение вверх-вправо.

CURa_dl EQU 14 ; Растяжение вниз-влево.

CURa_upS EQU 15 ; Скроллинг вверх.

CURa_dnS EQU 16 ; Скроллинг вниз.

CURa_lfS EQU 17 ; Скроллинг влево.

CURa_rtS EQU 18 ; Скроллинг вправо.

CURtext EQU 19 ; Ввод текстовых данных.

 

1.4.9. Имена селекторов.

Важнейшие селекторы глобальных дескрипторов имеют имена. В основном, этими именами пользуется ядро FCOS, а не приложения, т.к. глобальные дескрипторы имеют наивысший уровень привилегий процессора. Приложения могут лишь обмениваться самими селекторами, не осуществляя доступ к сегментам.; Синонимы цветов.BLACK EQU 0 ; Черный.BLUE EQU 1 ; Синий.GREEN EQU 2 ; Зеленый.CYAN EQU 3 ; Море.RED EQU 4 ; Красный.MAGENTA EQU 5 ; Фиолетовый.BROWN EQU 6 ; Коричневый.

L_GRAY EQU 7 ; Светлосерый.

DARKGRAY EQU 8 ; Темносерый.

L_BLUE EQU 9 ; Голубой.

L_GREEN EQU 10 ; Салатовый.

L_CYAN EQU 11 ; Небо.

L_RED EQU 12 ; Розовый.

L_MAGENTA EQU 13 ; Сиреневый.

YELLOW EQU 14 ; Желтый.

WHITE EQU 15 ; Белый.

GRAY_0 EQU 16 ; Серый - самый тёмный.

GRAY_1 EQU 17 ; Серый - очень тёмный.

GRAY_2 EQU 18 ; Серый - тёмный.

GRAY_3 EQU 19 ; Серый - чуть светлее.

GRAY_4 EQU 20 ; Серый - ещё светлее.

GRAY_5 EQU 21 ; Серый - -- .

GRAY_6 EQU 22 ; Серый - -- .

GRAY_7 EQU 23 ; Серый - -- .

GRAY_8 EQU 24 ; Серый - -- .

GRAY_9 EQU 25 ; Серый - -- .

GRAY_A EQU 26 ; Серый - -- .

GRAY_B EQU 27 ; Серый - -- .

GRAY_C EQU 28 ; Серый - -- .

GRAY_D EQU 29 ; Серый - светлый .

GRAY_E EQU 30 ; Серый - очень светлый .

GRAY_F EQU 31 ; Серый - самый светлый .

 

1.4.10. Имена селекторов.

Важнейшие селекторы глобальных дескрипторов имеют имена. В основном, этими именами пользуется ядро FCOS, а не приложения, т.к. глобальные дескрипторы имеют наивысший уровень привилегий процессора. Приложения могут лишь обмениваться самими селекторами, не осуществляя доступ к сегментам.

 

 

; Константы для видео-адаптера.VidMod EQU 00103h ; Видео-режим 800x600x256. {101,103,105}.ScanLine EQU 1024 ; Длина логической скан-линии 1024 pix.MAXSCRNX EQU 799 ; Последняя доступная координатаMAXSCRNY EQU 599 ; видимой части экрана.ENDBAR_X EQU 553 ; Конец области пиктограмм DL.

DOWNLINY EQU 578 ; Y-координата начала DL.

TIMECRDX EQU 786 ; Координаты младшего

TIMECRDY EQU 583 ; разряда секунд.

COLMENXB EQU 216 ; Оконные координаты цветовой гаммы

COLMENYB EQU 0 ; для SetUp Window \color.

 

1.4.11. Имена селекторов.

Важнейшие селекторы глобальных дескрипторов имеют имена. В основном, этими именами пользуется ядро FCOS, а не приложения, т.к. глобальные дескрипторы имеют наивысший уровень привилегий процессора. Приложения могут лишь обмениваться самими селекторами, не осуществляя доступ к сегментам.

 

 

; Шаблоны для 'System Window'.SC_DLTp EQU 10 ; Количество пиктограмм DownLineTaskbar.SC_DLTw EQU 3 ; Количество окон DownLineTaskbar.W_FCOS EQU 0 ; Номер окна Sys.W_TASK EQU 1 ; Номер окна TASK.W_MEMO EQU 2 ; Номер окна MEMO.S_FCOS EQU 0 ; Пиктограммы окна 'System Window'.

S_TASK EQU 3 ; Пиктограммы окна 'Task Manager'.

S_MEMO EQU 9 ; Пиктограммы окна 'Memory Manager'.

P_TASK EQU 0 ; Номер пиктограммы TASK.

P_MEMO EQU 1 ; Номер пиктограммы MEMO.

P_QUIT EQU 2 ; Номер пиктограммы QUIT.

P_TINFO EQU 0 ; Номер пиктограммы INFO.

P_TMEMO EQU 1 ; Номер пиктограммы MEMO.

P_TKILL EQU 2 ; Номер пиктограммы KILL.

P_TREST EQU 3 ; Номер пиктограммы REST.

P_TDBUG EQU 4 ; Номер пиктограммы DBUG.

P_TQUIT EQU 5 ; Номер пиктограммы QUIT.

P_MQUIT EQU 0 ; Номер пиктограммы QUIT.

 

1.4.12. Имена селекторов.

Важнейшие селекторы глобальных дескрипторов имеют имена. В основном, этими именами пользуется ядро FCOS, а не приложения, т.к. глобальные дескрипторы имеют наивысший уровень привилегий процессора. Приложения могут лишь обмениваться самими селекторами, не осуществляя доступ к сегментам.

 

 

; Шаблоны для 'SetUp Window'.

SC_SUWp EQU 13 ; Количество пиктограмм SetUp Window.SC_SUWw EQU 4 ; Количество окон SetUp Window.WsSUWN EQU 0 ; Номер окна SetUp Window \main.WsCOLR EQU 1 ; Номер окна SetUp Window \color.WsFONT EQU 2 ; Номер окна SetUp Window \font.

WsINFO EQU 3 ; Номер окна SetUp Window \info.

SsSUWN EQU 0 ; Пиктограммы окна SetUp Window \main.

SsCOLR EQU 7 ; Пиктограммы окна SetUp Window \color.

SsFONT EQU 10 ; Пиктограммы окна SetUp Window \font.

;SsINFO EQU 10 ; Пиктограммы окна SetUp Window \info.

P_SCOLR EQU 0 ; Номер пиктограммы COLOR.

P_SFONT EQU 1 ; Номер пиктограммы FONT.

P_SINFO EQU 2 ; Номер пиктограммы INFO.

P_SQUIT EQU 6 ; Номер пиктограммы INFO.

Return to top of pageReturn to top of page

Предыдущая часть, Следующая часть


В начало  |   FCOS: Новости, Установка, Закачать!, Приложения, Драйверы, FCOS book


Rambler's Top100

Последнее обновление 21.11.2005 г.
©  Fwcs Corporation  Design,  2005 г.

Hosted by uCoz