В моей системе самое главное проектировать объекты, объект это стандартные 64байта и специальная информация, буфер еслинужен и функционал.
Всё работает через объекты, кодеки, файлы, компоненты, модули, форма окна, устройства, диски, файловые системы, протоколы сетевые.
Предлагаю желающим спроектировать и попробовать создать весь функционал, для объекта на любую тему, просто в текстовом файле, а реализовать в систему я помогу. У каждого есть свая любимая тема, о которой знаеш все и таким образом будет её реализация более правильной, чем гдето ).
Свои знания не нужно недооценивать и закапывать их, а нужно их правильно применять вместе с другими людьми.
Вообще после создания объектов и нормальной работы системы будет очень большое поощрение создателям объектов.
Вот примеры:
Цитата:
Стандартный объект в ОС Малинка имеет стандартные для всех объектов поля:
Для использования объектов всегда используется его указатель, регистр ebp. Главная задача объекта - нарисовать себя на
экране и по наведении мышки иметь адрес курсора, принимать сообщения и обрабатывать их.
Для отрисовки объекта всегда используется функция со смещением 8, для сообщения со смещением 12 и курсор всегда со смещением 0,
система будет использовать эти поля.
0-3 Адрес изображения курсора 4байта
4-7 Цвет курсора и тип курсора 4байта Чёрный 1, цветной 2, разноцветный 3
8-11 Адрес кода отрисовки 4байта
12-15 Адрес кода с обработчиком 4байта
16-19 Адрес ресурса 4байта
20-23 Цвет ресурса и размер или тип 4байта Это поле для разных объектов несёт разный смысл
24-27 Ширина, высота 4байта Это поле для разных объектов несёт разный смысл
28-31 Положение 4байта
32-35 Адрес хозяина 4байта
36-39 Адрес своего активного объекта 4байта
40-43 Адрес следующего объекта 4байта
44-47 Адрес предыдущего 4байта
Объект система:
0-3 Адрес изображения курсора 4байта
4-7 Цвет курсора и тип курсора 4байта Чёрный 1, цветной 2, разноцветный 3
8-11 Адрес кода отрисовки 4байта
12-15 Адрес кода с обработчиком 4байта
16-19 Адрес изображения 4байта
20-23 Цвет ресурса и размер или тип 4байта
24-25 Ширина экрана 2байта
26-27 Высота экрана 2байта
28-31 Положение 4байта
32-35 Адрес хозяина 4байта
36-39 Адрес своего активного объекта 4байта активному объекту приходит сообщение от клавы и таймера
40-43 Адрес иконок 4байта сначала рисуются все иконки в цепочке
44-47 Адрес кнопок 4байта
48-51 Адрес форм 4байта
52-55 Адрес меню 4байта
56-59 Адрес 4байта
60-63 Адрес 4байта
64-67 Адрес функций системы 4байта
68-71 Адрес функций системы 4байта
72-75 Адрес функций системы 4байта
76-79 Адрес функций системы 4байта
....
Объект текст:
0-3 Адрес изображения курсора 4байта
4-7 Цвет курсора и тип курсора 4байта Чёрный 1, цветной 2, разноцветный 3
8-11 Адрес кода отрисовки 4байта
12-15 Адрес кода с обработчиком 4байта
16-19 Адрес текста 4байта
20 синий цвет 1байт
21 зелёный цвет 1байт
22 красный цвет 1байт
23 размер шрифта 1байт
24-27 Адрес шрифта 4байта
28-31 Положение 4байта
32-35 Адрес хозяина 4байта
36-39 Адрес своего активного объекта 4байта
40-43 Адрес следующего объекта 4байта
44-47 Адрес предыдущего 4байта
Объект изображение:
0-3 Адрес изображения курсора 4байта
4-7 Цвет курсора и тип курсора 4байта Чёрный 1, цветной 2, разноцветный 3
8-11 Адрес кода отрисовки 4байта
12-15 Адрес кода с обработчиком 4байта
16-19 Адрес изображения 4байта
20-23 Цвет ресурса и размер или тип 4байта
24-25 Ширина 2байта
26-27 Высота 2байта
28-31 Положение 4байта
32-35 Адрес хозяина 4байта
36-39 Адрес своего активного объекта 4байта
40-43 Адрес следующего объекта 4байта
44-47 Адрес предыдущего 4байта
Для отрисовки call(jmp) dword[ebp+8]
Объект значёк:
0-3 Адрес изображения курсора 4байта
4-7 Цвет курсора и тип курсора 4байта Чёрный 1, цветной 2, разноцветный 3
8-11 Адрес кода отрисовки 4байта
12-15 Адрес кода с обработчиком 4байта
16-19 Адрес текста 4байта
20 синий цвет 1байт
21 зелёный цвет 1байт
22 красный цвет 1байт
23 размер шрифта 1байт
24-27 Адрес шрифта 4байта
28-31 Положение 4байта
32-35 Адрес хозяина 4байта
36-39 Адрес своего активного объекта 4байта адрес объекта для его запуска, вызывается в обработчике
40-43 Адрес следующего объекта 4байта
44-47 Адрес предыдущего 4байта
48-51 Адрес изображения 4байта
52-53 Ширина 2байта
54-55 Высота 2байта
56-57 x 2байта
58-59 y 2байта
60-63 Адрес функции активации 4байта вызывается в обработчике по нажатию мышки
Для отрисовки call(jmp) dword[ebp+8]
Для вызова объекта в обработчике call(jmp) dword[ebp+36]
Для активации call(jmp) dword[ebp+60]
Объект форма:
0-3 Адрес изображения курсора 4байта
4-7 Цвет курсора и тип курсора 4байта Чёрный 1, цветной 2, разноцветный 3
8-11 Адрес кода отрисовки 4байта
12-15 Адрес кода с обработчиком 4байта
16-19 Адрес формы 4байта массив Ширина*Высота*8
20-23 Цвет ресурса и тип 4байта
24-25 Ширина 2байта
26-27 Высота 2байта
28-31 Положение 4байта
32-35 Адрес хозяина 4байта
36-39 Адрес своего активного объекта 4байта
40-43 Адрес следующего объекта 4байта
44-47 Адрес предыдущего 4байта
48-51 Адрес функции очистки экрана 4байта
52-55 Адрес функции перемещения 4байта
56-59 Адрес функции активации 4байта
60-63 Адрес функции закрытия 4байта вызывается в обработчике по правой кнопки мыши на данный момент
Объект устройство:
0-3 Адрес изображения курсора 4байта
4-7 Цвет курсора и тип курсора 4байта Чёрный 1, цветной 2, разноцветный 3
8-11 Адрес кода отрисовки 4байта
12-15 Адрес кода с обработчиком 4байта
16-19 Адрес текста 4байта текст находится с 80 по 127
20 синий цвет 1байт
21 зелёный цвет 1байт
22 красный цвет 1байт
23 размер шрифта 1байт
24-27 Адрес шрифта 4байта
28-31 Положение 4байта
32-35 Адрес хозяина 4байта
36-39 Адрес своего активного объекта 4байта
40-43 Адрес следующего объекта 4байта
44-47 Адрес предыдущего 4байта
48-51 Адрес шины 4байта
52-55 Адрес функции вывода информации 4байта
При загрузке драйвера, он использует под свои нужды 56-79 и 80-127 байты, в 56 пишет адрес регистров в памяти, и т.д..
Каждое устройство может изменить оформление для себя, шрифт, цвет, размер, курсор.
Объект диск, 256байт+512байт(буфер):
0-3 Адрес изображения курсора 4байта
4-7 Цвет курсора и тип курсора 4байта Чёрный 1, цветной 2, разноцветный 3
8-11 Адрес кода отрисовки 4байта
12-15 Адрес кода с обработчиком 4байта
16-19 Адрес текста 4байта текст находится с 80 по 127
20 синий цвет 1байт
21 зелёный цвет 1байт
22 красный цвет 1байт
23 размер шрифта 1байт
24-27 Адрес шрифта 4байта
28-31 Положение 4байта
32-35 Адрес хозяина 4байта
36-39 Адрес своего активного объекта 4байта
40-43 Адрес следующего объекта 4байта
44-47 Адрес предыдущего 4байта
48-51 Адрес значка 4байта
52-53 Ширина значка 2байта
54-55 Высота значка 2байта
56-59 Адрес диска в контроллере 4байта
60-63 Адрес функции чтения сектора 4байта главная функция объекта
64-127 Параметры диска
128-... Имя диска
...
Объект диск локальный, 256байт+1024байт(буфер):
0-3 Адрес изображения курсора 4байта
4-7 Цвет курсора и тип курсора 4байта Чёрный 1, цветной 2, разноцветный 3
8-11 Адрес кода отрисовки 4байта
12-15 Адрес кода с обработчиком 4байта
16-19 Адрес текста 4байта текст находится с 80 по 127
20 синий цвет 1байт
21 зелёный цвет 1байт
22 красный цвет 1байт
23 размер шрифта 1байт
24-27 Адрес шрифта 4байта
28-31 Положение 4байта
32-35 Адрес хозяина 4байта
36-39 Адрес своего активного объекта 4байта
40-43 Адрес следующего объекта 4байта
44-47 Адрес предыдущего 4байта
48-51 Адрес значка 4байта
52-53 Ширина 2байта
54-55 Высота 2байта
56-59 Первый кластер 4байта для синхронизации с файлами, т.к. обработчик один
60-63 Адрес диска локального (себя) 4байта для синхронизации с файлами, т.к. обработчик один
64-127 Параметры файловой системы 52байта
128-... Имя диска 12байт
256-... Буфер для файловой системы 1024байт
Объект файл, 256байт:
0-3 Адрес изображения курсора 4байта
4-7 Цвет курсора и тип курсора 4байта Чёрный 1, цветной 2, разноцветный 3
8-11 Адрес кода отрисовки 4байта
12-15 Адрес кода с обработчиком 4байта
16-19 Адрес текста 4байта текст находится с 80 по 127
20 синий цвет 1байт
21 зелёный цвет 1байт
22 красный цвет 1байт
23 размер шрифта 1байт
24-27 Адрес шрифта 4байта
28-31 Положение 4байта
32-35 Адрес хозяина 4байта
36-39 Адрес своего активного объекта 4байта
40-43 Адрес следующего объекта 4байта
44-47 Адрес предыдущего 4байта
48-51 Адрес значка 4байта
52-53 Ширина 2байта
54-55 Высота 2байта
56-59 Первый кластер 4байта
60-63 Адрес диска локального 4байта
64-128 Функции для работы с файлом 64байт
128-255 Буфер для имени и пути 128байт
Файлы создаются при взове функции чтения файлов и их создание из папки в подготовленную память размера 256*100(для 100 файлов)