На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru


Страницы: (27) « Первая ... 23 24 [25] 26 27   ( Перейти к последнему сообщению )  
> Пишем операционную систему!
    conio.asm
    ExpandedWrap disabled
      <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>
      Это был лоадер.

      Бут я думаю не стоит сюда скидывать. Так как в нем не так просто разобраться. А лоадер, как вы видите очень прост.

      Для удобства GDT создана сдедующим образом:
      1. Нулевой
      2. Дескриптор данных лоадера.
      3. Дескриптор кода.
      4. Дескриптор стека.
      5. Дескриптор данных, но уже на всю оперативку.
      5. Дескриптор кода, но уже на всю оперативку.
        Теперь надо писать ядро.
        Сразу лучше это делать на С. Компилятор DJGPP (http://www.delorie.com/djgpp/)
        (или GCC) делает хороший 32 разр. код. Самый подходящий формат файла BIN(мне так кажется).

        Или если знаете, тогда другой(я долго искал, и этот мне показался самый подходящий). Надо сразу договорится о средстве разработки(АСМ я не считаю перспективным средством, если подходить к делу серьезно. На нем должен быть лоадер и бут. Ну и некоторые моменты с прерываниями и оборудованием(их можно сделать асм вставками)).

        Но до перехода из лоадера лучше сделать все сегменты 32 битн. В данном случае установить BitD в сегментах.
        Сообщение отредактировано: rcz -
          [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 туда.
            Только не в коем случае не делаёте интерфейс по модели X-Windows. Со всеми этими глупыми кнопками. Пусть будет что-то более оригинальное.
              Никто не будет писать ось с интерфейсом X Win, можете успокоиться.
              Скажу по секрету :) - никто вообще не напишет работоспособную ось.
              Я почитал эту тему, осилил все 13 страниц... скажем так... идеи конечно грандиозные, только вот знаний маловато будет.
              Некоторые уже ЦЕЛЫЙ ГОД (!!!) эту ось пишут, скажите, есть ли хоть одна рабочая версия? Не важно как она называется - альфа, бэта, гамма, главное - рабочая?!!
              Пока как я вижу, все думают, как написать ядро (ЧЕРЕЗ ГОД!!!), и даже не определились, на чем писать и какой выбрать компилятор (см. сообщение от rcz на стр. 13)
              Если кто-то ДЕЙСТВИТЕЛЬНО хочет ось написать, предлагаю поступать в соответствующий ВУЗ на соответствующую специальность и устраиваться на работу в крупную иностранную фирму (в тот же Microsoft). Так вы, хоть и не в одиночку, но напишите нормальную рабочую ось и сможете гордо говорить, что с вашей помощью в Windows стало на десяток багов меньше.


                [^Y by vot]
                Я хоть с Русланом и не в одном проекте, но рабочии две версии есть, ща
                с третьей парюсь.
                Сообщение отредактировано: vot -
                  [^Y by vot]
                  Сообщение отредактировано: vot -
                    [^Y by vot]
                    Сообщение отредактировано: vot -
                      По-моему вы выбрали не то место для разборок.
                      А вообще графический интерфейс, если его не копировать
                      с Х Win, то по-крайней мере он должен быть таким же
                      функциональным  и доступным пользователю.
                        [^Y by vot]
                        На фига вообще оконный интерфейс?!
                        Самый классный, ненадоедливый и понятный интерфейс - консоль!
                        Сообщение отредактировано: vot -
                          Правильно. Тогда не будут лезть всякие ламеры. Не то что Winda - операционка для "дураков".
                            да, кстати, проект продвигается, или как?
                            если да, то я бы помог с разработкой gragical interface, могу и на ASM'e.
                            на всякий случай мое мыло: vitalyis@one.lt
                              [^Y by vot]
                              Сообщение отредактировано: vot -
                                Ко всем участникам дискуссии:
                                Прошу сдерживать свои эмоции при обсуждении проекта.
                                Если вам не нравится идея - не читайте ее.
                                Если же вам хочется просто поругаться - поищите для этого другое место.
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (27) « Первая ... 23 24 [25] 26 27 




                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0523 ]   [ 14 queries used ]   [ Generated: 20.05.24, 15:57 GMT ]