На паскале MS-Dos
паскале. Точнее на борланд паскале.
Если найдутся такие, Обещаю помочь.
(Ето реально)
Зачем это?(Попробуйте ответить сами, если не сможете, отвечу я)
Зачем это?(Попробуйте ответить сами, если не сможете, отвечу я)
Вы еще Windows на Ассемблере напишите. Или Linux на Delphi.
Вы еще Windows на Ассемблере напишите. Или Linux на Delphi.
Или многозадачную операционку с поддержкой мультипроцессорности на упрощеном паскальподобном
языке - Оберон.;) (Пожалуста, знакомтесь BlueBottle http://www.bluebottle.ethz.ch).
Назови пожалуйста хоть какуюту из причин, почему
невозможно :-?
Вся загвоздка в том ест ли паскаль програмисты которые смогут работать в команде.
И наконец два вопроса для всех.
Какой наименший резидент написаный на паскале(борланд) можна разместить в памяти?
Какой наименший размер ехе файла может получиться
при компиляции борланд паскалем?
Жду:roll:
Какой наименший размер ехе файла может получиться
при компиляции борланд паскалем?
Вроде 5k, если не изменяет память.
Кстати, почему именно на Borland Pascal? Вроде уже был проект, который пытался разработать ОС на Free Pascal (FPC).
Вроде 5k, если не изменяет память.
Кстати, почему именно на Borland Pascal? Вроде уже был проект, который пытался разработать ОС на Free Pascal (FPC).
При использовании Tiny rtl(искать в Swag(колекция пас исходников)) + манипуляции с system.tpu програма с бегин енд компилируэтся в
exe размером менше чем 100
:!!!: :!!!: байт.
Почему дос, почему борланд, потому что написав дос
смогут написать и более серйозную ос.
Ето все для подбора команды, тех кто сможет.
Вы еще Windows на Ассемблере напишите. Или Linux на Delphi.
Вобще-то Винда изначально была написана как раз на паскале...:roll:
Только вот действительно - зачем МС-ДОС. Он ведь Микрософт, потому и МС, лучше что-нить вроде Codenet-DOS!:D
ЧТО ЗА БЕЗГРАМОТНЫЕ СООБЩЕНИЯ! ПОЧЕМУ МОДЕРАТОРЫ НЕ ИСПРАВЛЯЮТ ЛЯПЫ, СДЕЛАННЫЕ ПОЛЬЗОВАТЕЛЯМИ. ИЛИ МОДЕРАТОРЫ САМИ НЕ ЗНАЮТ КАК ПРАВИЛЬНО? Я НАДЕЮСЬ ЧТО НЕТ! ПАЦАНЫ НУ ПОДСУЕТИТЕСЬ, А ТО И ТАК ЮЗЕРОВ И ТОПИКОВ МАЛО...
:???: :???: Что ты имел ввиду:-?
Резидент менше 1 кб в памяти кажется 900 байт
написан на борланд паскале
исползова методику из Minires.pas и
немного изменив получил такой результат
прорама емулятор Мыши(Управляэте курсором Мыши клавой
вкл откл '~'
Ctrl- Левая клавиша мышы)
Писал для игры в UFO
В нас В вузе МЫшки горели.
А фраза 'Паскаль для начинающих ето
СМЕШНО':D :D :D :D :D
Да пожалуста покажите мне безграмотные сообщения:x
Предлагаю собрать команду и написать мс-дос на
паскале. Точнее на борланд паскале.
Если найдутся такие, Обещаю помочь.
(Ето реально)
...skipped...
Это НЕ реально. Например, код boot-sector-а ты на паскале не напишешь (он 512 байт). Кроме того, придется юзать прерывания Bios, а следовательно, забыть про все, что связано с CRT и пр. etc...
Здается мне, что помочь ты не сможешь 8)
...skipped...
И наконец два вопроса для всех.
Какой наименший резидент написаный на паскале(борланд) можна разместить в памяти?
Какой наименший размер ехе файла может получиться
при компиляции борланд паскалем?
Жду:roll:
Жди, жди... 8)
Если будешь придерживаться строгих рамок размера, писать на BP будешь только через asm-вставки.
Спрашивается: а СМЫСЛ писать на BP ??!
Жди, жди... 8)
Если будешь придерживаться строгих рамок размера, писать на BP будешь только через asm-вставки.
Спрашивается: а СМЫСЛ писать на BP ??!
Ну тоды смотри такой код(приклеен).
Ето насчет, что в бот на паскале незя.
Правда не все красиво. Но работает.
Для написания дос достаточно написать процедуры чтения и записи сектора диска. всье остальное можно на паскале.(да про crt,string,val-придется забить? Нее, реализовать )
Да кстати, нужно сделать еще собственную файловую систему, не пользоваться же майкрософтскимX)- FAT'ом
Сперва как раз нужно майкрософтскимX- FAT'ом(для хорошего тестирования)
Сперва как раз нужно майкрософтскимX)- FAT'ом(для хорошего тестирования)
Понятно что начинать надо не с файловой системы, но в итоге нужна своя. А то вдруг операционка станет успешной, дядя Билл обидется и в суд подаст:)
Понятно что начинать надо не с файловой системы, но в итоге нужна своя. А то вдруг операционка станет успешной, дядя Билл обидется и в суд подаст:)
Сперва нужно сделать что то работающее.
А то у нас только могут говорить.
кстати есть одна украинская пословица
(п..ь ето не мешки носить)
Извините.
На этом,наверно, и всё закончится, а жаль...:(
Но почему?, уже не закончится.
Ну вот ты например senser хотел бы поддержать, чтото написать или у тебя есть желани но не знаеш как им воспользоватся??
:roll:
Но почему?, уже не закончится.
Ну вот ты например senser хотел бы поддержать, что-то написать или у тебя есть желание но не знаешь как им воспользоваться??
:roll:
Я готов поддержать этот проект и принять в нем участие, так
что prosto можешь расчитывать на меня.
Я готов поддержать этот проект и принять в нем участие, так
что prosto можешь расчитывать на меня.
Если честно я и не надеялся что ктото осмелится и забил на поддержку.
Хорошо senser раскажи с чем работал(приблизительно твой уровень). Ну и твой уровень паскаля. Ну и почему решил поддержать?
Хорошо senser раскажи с чем работал(приблизительно твой уровень). Ну и твой уровень паскаля.
Я работал вроде со всем(с чем-то лучше с чем-то хуже), кроме ООП, на уровне любитель(думаю).
Ну и почему решил поддержать?
Причит вобщем-то много одна из них:
я думаю у нас способны написать операционку.
Я работал вроде со всем(с чем-то лучше с чем-то хуже), кроме ООП, на уровне любитель(думаю).
Причит вобщем-то много одна из них:
я думаю у нас способны написать операционку.
Хорошо тоды поехали.
Да, сперва свои пропозиции, пожелания.
Ну а на потом:
попробуй реализовать дос функции $48,$49,$4А.
По сути это досовскый менеджер памяти.
Реализация происходит в процедурах
Procedure GetMem(r:registers);{$48}
begin
...
..
end;
Procedure FreeMem(r:registers);{$49}
begin
...
..
end;
Procedure ResizeMem(r:registers);{$4A}
begin
...
..
end;
Ето не так сложно как ты думаєш или как звучит
1. Тебе вся память доступна.
2. Реализуется с помощю связных списков.
3. Для реализации нужен справочник Дос структур(точнее формат блока управления памятю) и функций.
Вопросы принымаються всякие даже самые глупые, но по существу.
Жду ...:)
Хорошо тоды поехали.
Да, сперва свои пропозиции, пожелания.
Ну вначале я хотел бы узнать план действий
(т.к я вообще не представляю как делать ОС).
Ну а на потом:
попробуй реализовать дос функции $48,$49,$4А.
По сути это досовскый менеджер памяти.
И может посоветуешь литературу какую-нибудь по
этой теме, а то я с памятью на таком уровне не работал.
P.S. И если можно лучше мне на почту писать [email]senser@rin.ru[/email] или на аську 329950223(мне так удобней).
Ну вначале я хотел бы узнать план действий
(т.к я вообще не представляю как делать ОС).
Расскажу немного позже.
(У меня завёлся вирус ... старый такой "Grip" -
называеться подлечусь немного до понедельника)
И может посоветуешь литературу какую-нибудь по
этой теме, а то я с памятью на таком уровне не работал.
Там скинул тебе на мыло "пищу для мозгов".
Вообще паскаль - язык очень неудобный для написания низкоуровневых приложений, а виндовс, что на нем был написан, операционной системой не является, а является операционной оболочкой (как нортон-коммандер).
А почему именно на паскале и почему именно дос? Не, не так. Почему именно на Борланд паскале и именно мс-дос?
Вообще паскаль - язык очень неудобный для написания низкоуровневых приложений, а виндовс, что на нем был написан, операционной системой не является, а является операционной оболочкой (как нортон-коммандер).
На паскале(борланд) потому что этот язык на територии СНГ наиболее распространьон(его знают больше человек), да и хочется опровергнуть много стереотипов включая и тот что ты написал.
(С другой стороны паскалеподобние языки это европейский стиль Си подобние амереканский, в западной европе счас модула-2,Оберон -как язык так и система, у нас мне кажется больше паскаль, делфи )
Почему дос та потому что если начать сразу же из защищеного режима и новой концепции в 98 % будет крах из-за сложности реализации, плохой тестируемости. Мс дос - это возможность хорошей тестируэмости(программ море), понятие файловых систем и анализ их слабых сторон, понятие работы и принципов осистроения, ну и наконец этой ос можна будет пользоватся в жизни, а после развить в серйозную ос с поддержкой дос програм.(тода может и компилятор подоспеет ;) )
Ну и я фанат паскаля немного(хотя в душе сишник)
:)
О неудобстве пожалуйста кусок кода Дос.
{+++++Здеся и вызов процедур которые реализуют функции дос ну ядро есть ядро++++++++++}
Procedure _Kernel(var r:registers);
begin
case r.ah of
$25:begin SetIntVect(r); end;
$35:begin GetIntVect(r); end;
$30:begin GetVersion(r); end;
$06:begin WriteSymbol(R);end
......
визов других реализаций функций
......
else
begin
{сюда попадаем если не реализ}
end;
end;
end;
{====А ето обработчик(прослойка) 21H который вызывает ядро в котором усё и творится=============}
Procedure int21;assembler;
asm
pusha
push ds
push es
mov ax,ss
push ax
mov ax,sp
ADD ax,2
push ax
call _kernel;
pop es
pop ds
popa
iret
end;
{====================================}
далее реализация типа виглядит так
{-----------------------------------------------}
Procedure SetIntVect(var r:registers);{25h}
begin
InterruptsW[r.al,SegA]:=r.ds;
InterruptsW[r.al,OfsA]:=r.dx;
end;
{-----------------------------------------------}
Procedure GetIntVect(var r:registers);{35H}
Begin
r.es:=InterruptsW[r.al,SegA];
r.bx:=InterruptsW[r.al,OfsA];
end;
{-----------------------------------------------}
Procedure GetVersion(var r:registers);{30h}
begin
r.al:=0;
r.ah:=1;
r.bl:=ord('N');
r.cl:=ord('\');
r.ch:=ord('A');
end;
{------------------------------------------------}
Procedure WriteSymbol(var R:Registers);{06H}
Begin
With R Do
Begin
AH:=$e;
AL:=DL;
BL:=7;
End;
_Int($10,R);
End;
{------------------------------------------------}
...................
описание других реализаций функций мс дос
...................
вроде усё удобно.
А что на паскале ос написать нельзя ето вам дядя били нашептал.:D
Паскаль на территории СНГ распространен исключительно среди студентов и программистов на Дельфи, область деательности которых ограничивается "печатью платежек" и "переращет пенсии по выслуги лет"... Т.е. это программирование "на скорую руку", ну и результат такой же.
Серьезные программы с заявкой на стабильность пишутся на С и ассемблере. Потому что: компиляторы С достигли такого уровня скорости и оптимизации, что не снилась ни одному компилятору паскаля; компиляторов С - множество и под различные платформы; многие компиляторы бесплатны, свободно распространяются и изменяются (вы, конечно, купили лицензию на копию Борланд Паскаля? ;)
Где вы видели хоть одну встроенную систему (мобильный телефон, PDA, mp3-плеер, стиральную машину) или программу низкого уровня, написанную на чем-то кроме С?
Если есть желание сделать полоценную ось то:
1. Почему бы не начать с разработки компилятора. Пусть это будет паскаль или его клон. Это будет компилятор вашей ос.
2. С помощью разработаного компилятора пишем ось. И чем так страшен защищенный режим? И тестируйте пожалуйста ДОСовскими программами - сделаете виртуальную ДОС-среду и будете пускать программы в виде отдельных задач.
Ну можно, конечно, и зайца научить курить... (с)
Паскаль на территории СНГ распространен исключительно среди студентов и программистов на Дельфи,
+ инженера, сотрудники НАУ.
область деательности которых ограничивается "печатью платежек" и "переращет пенсии по выслуги лет"... Т.е. это программирование "на скорую руку", ну и результат такой же.
боже мой нас обманывають :), а ето ссылка прайса продуктов написаных на делфи(если точнее
ядро этих систем(мегаполис))
http://www.softline.kiev.ua/control/ru/publish/article?art_id=22471&cat_id=22437
ну и можна продолжить.
(да и прошу извинения в модератора может это не разрешено)
Серьезные программы с заявкой на стабильность пишутся на С и ассемблере.
На скорость да.Стабильность нет.
(Я для себя: чёткость кода паскаль, делфи, скорость асемблер, А вобще то не у всех местах программы нужна оптимизация ;) )
Потому что: компиляторы С достигли такого уровня скорости и оптимизации, что не снилась ни одному компилятору паскаля; компиляторов С - множество и под различные платформы; многие компиляторы бесплатны, свободно распространяются и изменяются (вы, конечно, купили лицензию на копию Борланд Паскаля? ;)
XDS компилятор Оберона скорость и оптимизация,
что не снилось ни одному компилятору С
(В сибири ребята накатали)
Бесплатные и совсем 32х розрядные ;), и под любые платформы.
Free paskal, Virtual Paskal(мне этот нравится),gnu paskal, TMT paskal ну и Борланд паскаль уже FREE.
Где вы видели хоть одну встроенную систему (мобильный телефон, PDA, mp3-плеер, стиральную машину) или программу низкого уровня, написанную на чем-то кроме С?
На си подобном языке яве. Опять таки Оберон(советую почитать, поискать очень интересная вещ в плане развития ну и если удастся 10-20% разобратся, понять)
Если есть желание сделать полоценную ось то:
1. Почему бы не начать с разработки компилятора. Пусть это будет паскаль или его клон. Это будет компилятор вашей ос.
2. С помощью разработаного компилятора пишем ось. И чем так страшен защищенный режим? И тестируйте пожалуйста ДОСовскими программами - сделаете виртуальную ДОС-среду и будете пускать программы в виде отдельных задач.
1. Проблема не в компиляторе а в людях способных написать.Напишут на борланде ну тода и новый компилятор можна.(А отмазки это проще всего)
2. Ну когда написали в реали тогда можна в защищенку 16 битную, с виртуальной машиной, с шлюзами перенаправлений прырываний.
Вся проблема в стереотипах которые нужно ломать
кто за? 8)
А можно поучаствовать? или здесь нужны профи знающие все!?
Можно, только для этого нужно стойкое желание и немного времени, нужны програмеры готовые написать все, а не "профи" которые только расказывают что и как.
(Как обычно может получится желание есть по работать, а времени все нхватает)
А как насчет времени исполнения каково либо "задания" оно неограничено?:D
(Как обычно может получится желание есть по работать, а времени все нхватает)
это проццес творческий как стихи писать:)
ну и груповой не ты то кто-то.
Ну и я думаю нужно подготовочное время чтоб не "с копём на танка".
А время, у кого оно есть?
Как обычно может получится желание есть по работать, а времени все нхватает
По философски отвечу (количество перерастает в качество)Когда при малом количество времени желание растёт потом с удивлением замечаеш
что появляется время.
(Было бы желание время найдётся):)
что надо делать?? (если конеЧно возьмете в "клуб"):D :D
prosto ну я готов составить конкуренцию OS от Microsoft..
что надо делать?? (если конеЧно возьмете в "клуб"):D :D
берёш в одну руку справочник по биосу в другую справочник по досу и на паскале в процедурах типа
Procedure name(var R:Registers);{номер ф дос}
Begin
End;
{---------------------------------------------}
пишеш реализацию функции дос.
Например реализация функции 6H
{-----------------------------------------------}
Procedure WriteSymbol(var R:Registers);{06H}
Begin
With R Do
Begin
AH:=$e;
AL:=DL;
BL:=7;
End;
_Int($10,R);
End;
{-----------------------------------------------}
Немного погодя я раскажу более подробно(работа занимает много времени)
Проблема с инфой еще...
на этом сайте справочник по прерываниям меня
совсем запутал..
В примере выше там писалось Fun.06h
а далее идет MOV AH,0eh !!
или MOV AH,06 всетки??
И еще... можно на EmaiL(alf94ex@yandex.ru) тамо ответ отослать
а то сюда так долго добираться :)
З.Ы. Очень уж мне интересно стало... что у вас там получится???
И кстати попробуйте (если уж вообще будете делать) сбацать что нить помощней MS-DOS'а:D :D
ето решается просто -
перехвативаем 21h в обработчике вызываем те фукции которые
реализовали, а если есть не реализованые то для них
вызываем стандартный обработчик.
В основной програме для тестирования
пишем типа
r.ah:=0{НОМЕР функции}
..
r.bx:= ..
..
Intr(21h,r);
ну или так
asm
mov ah,0 {НОМЕР функции}
...
mov bx,..
..
int 21h
end;
если все нормально приступаем к реализации и тестированию другой функции дос
Предлагаю собрать команду и написать мс-дос на
паскале. Точнее на борланд паскале.
Если найдутся такие, Обещаю помочь.
(Ето реально)
Помнится, я тоже таким страдал. Только слегка по-другому.
Отличия такие: я пытался создать не с самого начала, а на основе ДОСа (только, правда, другой формат исполняемых файлов). Клавиатура, мышь; окна, графика, текстовый режим – графический; защищенный 16ти битный режим - 32х битный, мультизадачность(несколько типов) и т.д. Аж 3 версии создал, правда очень не отлаженные, но работали. И не раз я встречал рассвет, дописывая последние строки модулей. Но вот в один прекрасный момент я услышал о Linux, и понял – это то, что я пытался создать. Когда я его в первый раз увидел, то он выглядел именно так, как я реализовывал интерфейс в своей “ОС” (независимо от Linux!). Вот и решил – изучить Unix/Linux – самые удачные ОС прошлого и настоящего!
А уж если создавать чего-то новое, то надо забыть старое (всякие там MS-DOS, Windows и т.д.). Делать то, что никто никогда не делал. Думаю, надо брать за основу человека, т.е. его привычную среду. Интерфейс должен быть предусмотрен уже в ядре системы и быть настолько понятен, что бы ничего “учить” не надо было. Только делай привычные для тебя вещи и наслаждайся скоростью работы. Правда, тогда останется еще оборудование подобрать для удобства общения с такой ОС.
Ну, это идеалы. А вообще, я думаю, лучше сразу с protected 32 начинать, а то потом начнется беда с обратной совместимостью. Да, и этот “реальный” режим уже давно нереален (даже 286 уже давно в прошлом).