Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.144.1.230] |
|
Страницы: (27) « Первая ... 23 24 [25] 26 27 ( Перейти к последнему сообщению ) |
Сообщ.
#361
,
|
|
|
conio.asm
<br>PutLXY proc near<br> arg @@X:word,@@Y:word,@@num:dword<br> local @@des:dword<br> uses es<br> mov @@des,10<br> mov ax,0b800h<br> mov es,ax<br> mov di,@@Y<br> imul di,160<br> add di,@@X<br> add di,@@X<br><br> mov eax,@@num<br> push @@des<br>@@PutLLoop:<br> cmp eax,10<br> jb @@PutLjb<br> jb @@PutLjb<br> xor edx,edx<br> div @@des<br> push edx<br> jmp @@PutLLoop<br>@@PutLjb:<br> or al,30h<br> stosb<br> inc di<br> pop eax<br> cmp al,10<br> jb @@PutLjb<br> ret<br>PutLXY endp<br><br>PrintS proc near<br> arg @@str:dword<br> uses ds,es<br> mov ax,0b800h<br> mov es,ax<br> xor di,di<br> lds si,@@str<br>@@PrintS:<br> movsb<br> inc di<br> cmp byte ptr ds:[si],0<br> jne @@PrintS<br> ret<br>PrintS endp<br><br>Cls proc near<br> uses es<br> mov ax,0b800h<br> mov es,ax<br> mov eax,07000700h<br> xor edi,edi<br> mov ecx,1000<br> rep stosd<br> ret<br>Cls endp<br><br>pCls proc near<br> uses es<br> mov ax,PDATA_DESC<br> mov es,ax<br> mov eax,07000700h<br> mov edi,0b8000h<br> mov ecx,1000<br> rep<br> db 67h<br> stosd<br><br> ret<br>pCls endp<br><br><br><br>; PrintSXY<br>; ‚е®¤лҐ Ї а ¬Ґвал: 1. X<br>; 2. Y<br>; 3. 32-ЎЁвл© гЄ § ⥫м бва®Єг § Є зЁў ойгобп 0<br>; ‚ле®¤л Ї а ¬Ґвал: ЌҐв.<br><br>; ”гЄжЁп а бЇҐз вЄЁ бв®а®ЄЁ нЄа .<br>; ‚ҐабЁп 1.0<br><br>PrintSXY proc near<br> arg @@X:word,@@Y:word,@@str:dword<br> uses ds,es<br> mov ax,0b800h<br> mov es,ax<br> mov di,@@Y<br> imul di,160<br> add di,@@X<br> add di,@@X<br> lds si,@@str<br>@@PrintS:<br> movsb<br> inc di<br> cmp byte ptr ds:[si],0<br> jne @@PrintS<br> ret<br>PrintSXY endp<br><br>pPrintSXY proc near<br> arg @@X:word,@@Y:word,@@str:pword<br> uses ds,es<br> mov ax,PDATA_DESC<br> mov es,ax<br> mov di,@@Y<br> imul di,160<br> add di,@@X<br> add di,@@X<br> lds esi,@@str<br>@@PrintS:<br> mov al,byte ptr ds:[esi]<br> mov es:[di],al<br> inc esi<br> inc di<br> cmp byte ptr ds:[esi],0<br> jne @@PrintS<br> ret<br>pPrintSXY endp<br> |
Сообщ.
#362
,
|
|
|
Это был лоадер.
Бут я думаю не стоит сюда скидывать. Так как в нем не так просто разобраться. А лоадер, как вы видите очень прост. Для удобства GDT создана сдедующим образом: 1. Нулевой 2. Дескриптор данных лоадера. 3. Дескриптор кода. 4. Дескриптор стека. 5. Дескриптор данных, но уже на всю оперативку. 5. Дескриптор кода, но уже на всю оперативку. |
Сообщ.
#363
,
|
|
|
Теперь надо писать ядро.
Сразу лучше это делать на С. Компилятор DJGPP (http://www.delorie.com/djgpp/) (или GCC) делает хороший 32 разр. код. Самый подходящий формат файла BIN(мне так кажется). Или если знаете, тогда другой(я долго искал, и этот мне показался самый подходящий). Надо сразу договорится о средстве разработки(АСМ я не считаю перспективным средством, если подходить к делу серьезно. На нем должен быть лоадер и бут. Ну и некоторые моменты с прерываниями и оборудованием(их можно сделать асм вставками)). Но до перехода из лоадера лучше сделать все сегменты 32 битн. В данном случае установить BitD в сегментах. |
Сообщ.
#364
,
|
|
|
[QUOTE=rcz, 07.04.03, 12:12:01]Сразу лучше это делать на С. Компилятор DJGPP (http://www.delorie.com/djgpp/)
(или GCC) делает хороший 32 разр. код. Самый подходящий формат файла BIN(мне так кажется).[/quote] Полностью с тобой согласен. [QUOTE=rcz, 07.04.03, 12:12:01] Но до перехода из лоадера лучше сделать все сегменты 32 битн. В данном случае установить BitD в сегментах.[/quote] [/quote] А какой копилятор это потянет? [QUOTE=rcz, 07.04.03, 12:12:01]Теперь надо писать ядро.[/quote] Начинай писать. Первым делом надо инициализировать диспечер памяти. То есть надо вкючить подкачку страниц. Нужны функции для выделения памяти. Я же допишу лоадер. Этот лоадер не рабочий, так как там не хватает функции mount, FindFile, ReadFile. Для того, что бы мы могли паралельно работать я напишу эмулятор лоадера. То есть программа будет делать слудующее, открывает файл, преводит процессор в защищенный режим, закачивает код в первый мегабайт и делает jmp туда. |
Сообщ.
#365
,
|
|
|
Только не в коем случае не делаёте интерфейс по модели X-Windows. Со всеми этими глупыми кнопками. Пусть будет что-то более оригинальное.
|
Сообщ.
#366
,
|
|
|
Никто не будет писать ось с интерфейсом X Win, можете успокоиться.
Скажу по секрету - никто вообще не напишет работоспособную ось. Я почитал эту тему, осилил все 13 страниц... скажем так... идеи конечно грандиозные, только вот знаний маловато будет. Некоторые уже ЦЕЛЫЙ ГОД (!!!) эту ось пишут, скажите, есть ли хоть одна рабочая версия? Не важно как она называется - альфа, бэта, гамма, главное - рабочая?!! Пока как я вижу, все думают, как написать ядро (ЧЕРЕЗ ГОД!!!), и даже не определились, на чем писать и какой выбрать компилятор (см. сообщение от rcz на стр. 13) Если кто-то ДЕЙСТВИТЕЛЬНО хочет ось написать, предлагаю поступать в соответствующий ВУЗ на соответствующую специальность и устраиваться на работу в крупную иностранную фирму (в тот же Microsoft). Так вы, хоть и не в одиночку, но напишите нормальную рабочую ось и сможете гордо говорить, что с вашей помощью в Windows стало на десяток багов меньше. |
Сообщ.
#367
,
|
|
|
[^Y by vot]
Я хоть с Русланом и не в одном проекте, но рабочии две версии есть, ща с третьей парюсь. |
Сообщ.
#368
,
|
|
|
[^Y by vot]
|
Сообщ.
#369
,
|
|
|
[^Y by vot]
|
Сообщ.
#370
,
|
|
|
По-моему вы выбрали не то место для разборок.
А вообще графический интерфейс, если его не копировать с Х Win, то по-крайней мере он должен быть таким же функциональным и доступным пользователю. |
Сообщ.
#371
,
|
|
|
[^Y by vot]
На фига вообще оконный интерфейс?! Самый классный, ненадоедливый и понятный интерфейс - консоль! |
Сообщ.
#372
,
|
|
|
Правильно. Тогда не будут лезть всякие ламеры. Не то что Winda - операционка для "дураков".
|
Сообщ.
#373
,
|
|
|
да, кстати, проект продвигается, или как?
если да, то я бы помог с разработкой gragical interface, могу и на ASM'e. на всякий случай мое мыло: vitalyis@one.lt |
Сообщ.
#374
,
|
|
|
[^Y by vot]
|
Сообщ.
#375
,
|
|
|
Ко всем участникам дискуссии:
Прошу сдерживать свои эмоции при обсуждении проекта. Если вам не нравится идея - не читайте ее. Если же вам хочется просто поругаться - поищите для этого другое место. |