Board.KolibriOS.org
http://board.kolibrios.org/

Запуск на 80486
http://board.kolibrios.org/viewtopic.php?f=1&t=2052
Page 4 of 5

Author:  yogev_ezra [ Thu Oct 24, 2013 5:15 pm ]
Post subject:  Re: Запуск на 80486

Akyltist wrote:
vkolibri wrote:
У меня два бука есть (80486sx/33 & 80486dx/66)
Quote:
1990-х была выпущена «облегченная» модификация i486SX без встроенного блока FPU.
ну это ладно, но на 80486dx/66 даже квейк идёт)))) что там может быть за инструкция специфическая такая?
Вы тему вообще не читаете, прежде чем написать? :wink:
Используется RDTSC (добавлена только в процессорах Pentium)
Заменить нужно всего 5 строчек (которые написаны на 20см выше в этой же теме).

Author:  vkolibri [ Thu Oct 24, 2013 6:35 pm ]
Post subject:  Re: Запуск на 80486

Прошу прощения, виноват.
Все понял.

Author:  red.kaktus.37 [ Fri Oct 25, 2013 9:44 am ]
Post subject:  Re: Запуск на 80486

yogev_ezra wrote:
Заменить нужно всего 5 строчек.

не совсем. я менял, оська запускалась до инициализации чего-то и тухла. должно быть что-то ещё, но что, я так и не понял. 8-битный авр - вот предел моего асма :(

Author:  Akyltist [ Fri Oct 25, 2013 11:04 am ]
Post subject:  Re: Запуск на 80486

yogev_ezra wrote:
Используется RDTSC

видимо не только она, а еще и команды из той лодки
WRMSR - Write the value in EDX:EAX to MSR specified by ECX
RDMSR - Load MSR specified by ECX into EDX:EAX
Code:
kernel\trunk\core\memory.inc
kernel\trunk\kernel.asm
kernel\trunk\sec_loader\trunk\listing.inc
kernel\trunk\sec_loader\trunk\loader.asm

Author:  vkolibri [ Fri Oct 25, 2013 11:54 am ]
Post subject:  Re: Запуск на 80486

red.kaktus.37 wrote:
...8-битный авр - вот предел моего асма :(

А что такое "авр"?

Author:  red.kaktus.37 [ Fri Oct 25, 2013 12:04 pm ]
Post subject:  Re: Запуск на 80486

avr - 8-ми битные контроллеры (есть конечно и 32бита) фирмы атмел (там асм весь в мнемониках, чистого интеловского нет)

Author:  red.kaktus.37 [ Fri Oct 25, 2013 12:16 pm ]
Post subject:  Re: Запуск на 80486

в далёком прошлом когда начал программировать на вижуал бэсике (тогда достаточно модном), меня всё больше и больше терзала платформенность того что я пишу (на тот момент написал какаю то управляшку с лпт, саморазмножающийся "вирус" на основе скриптов и блокнот умеющий читать более 5кило в отличии от микрософтовского, который тупо вис на неопределённое время :)) порой бросал и удалял всё начатое... пока не увидел какой-то пик одноразовый (с индексом С) у отца на работе, там дядька сослуживец замутил на нём (на пике) машинку сыну, всего 4 команды и те на проводном пульте, но тогда то я и понял, что всё что пишется на компе не имеет особой для меня ценности из-за того, что нельзя принести к другу в школу это убожество с быдлокодом и продемонстрировать как это чудо ещё и работает! с тех пор сожжено не мало камней а программирование на пк начал осваивать с ноля, т.к. си это не виж.бэйс )
правда сейчас появились в народе компы которые работают от батареек и носятся в кармане... но это уже другая история )))
прошу пардона муа за флуд и офф-топ )))

Author:  vkolibri [ Fri Oct 25, 2013 1:29 pm ]
Post subject:  Re: Запуск на 80486

Подождем. Может быть авторы системы когда-нибудь на минутку освободятся и перекомпилируют систему для 486. Вообще, говоря о Visual Basic, даже в QBasic была опция "компилировать для 286". Компилятор сам искал то, что идет на пентиумах и "эмулировал" в виде, который может быть исполнен на 80286. То есть в таком ассемблере Колибри ОС можно компилировать под любые процессоры, если бы он был. Другое дело, если вопрос касается ОЗУ, к которому 486 не может обратиться в отличие от пентиума, тогда все скомпилируется как надо, но работать не будет. И это знают только разработчики.
ps:
Это к вопросу, что рано или поздно необходимо будет произвести разделение кода - низкий, машинозависимый уровень и верхний. Для разных камней останется править только нижний.

За оффтоп нас счас здесь съедят :x

Author:  Mario_r4 [ Fri Oct 25, 2013 2:12 pm ]
Post subject:  Re: Запуск на 80486

vkolibri wrote:
Может быть авторы системы когда-нибудь на минутку освободятся и перекомпилируют систему для 486. Вообще, говоря о Visual Basic, даже в QBasic была опция "компилировать для 286". Компилятор сам искал то, что идет на пентиумах и "эмулировал" в виде, который может быть исполнен на 80286. То есть в таком ассемблере Колибри ОС можно компилировать под любые процессоры, если бы он был. Другое дело, если вопрос касается ОЗУ, к которому 486 не может обратиться в отличие от пентиума, тогда все скомпилируется как надо, но работать не будет. И это знают только разработчики.
ps:
Это к вопросу, что рано или поздно необходимо будет произвести разделение кода - низкий, машинозависимый уровень и верхний. Для разных камней останется править только нижний.

Это мнение большого специалиста в ФАСМ?
Spoiler: Show
Тему не читай - мозг сразу отключай.

Image

Author:  vkolibri [ Fri Oct 25, 2013 3:10 pm ]
Post subject:  Re: Запуск на 80486

Mario_r4 wrote:
Это мнение большого специалиста в ФАСМ?
Неа, просто фантазирую. Понравилась сама идея. При встрече сложной (для 80486) команды, смотреть флажок компиляции и "разворачивать" код для 286. Если флажка нет, тупо вставлять инструкции пентиум.
Ну вот и помечтал, что такой бы компилятор отыскать, он и под ARM скомпилирует, останется только с портами и памятью разобраться.

Author:  CleverMouse [ Fri Oct 25, 2013 4:33 pm ]
Post subject:  Re: Запуск на 80486

Akyltist wrote:
yogev_ezra wrote:
Используется RDTSC

видимо не только она, а еще и команды из той лодки
WRMSR - Write the value in EDX:EAX to MSR specified by ECX
RDMSR - Load MSR specified by ECX into EDX:EAX
Code:
kernel\trunk\core\memory.inc
kernel\trunk\kernel.asm
kernel\trunk\sec_loader\trunk\listing.inc
kernel\trunk\sec_loader\trunk\loader.asm

rdmsr/wrmsr используются, только если cpuid показала их наличие. Либо если программа явно попросила, но тогда ядро просто прибьёт такую программу.

Author:  CleverMouse [ Fri Oct 25, 2013 4:41 pm ]
Post subject:  Re: Запуск на 80486

vkolibri wrote:
Подождем. Может быть авторы системы когда-нибудь на минутку освободятся и перекомпилируют систему для 486

Если бы простой перекомпиляции было достаточно - это давно бы уже сделали:
red.kaktus.37 wrote:
не совсем. я менял, оська запускалась до инициализации чего-то и тухла. должно быть что-то ещё, но что, я так и не понял

Раз простой замены недостаточно, нужно выяснять, в чём дело, а ни у кого из разработчиков давно нет таких машин.

Author:  vkolibri [ Fri Oct 25, 2013 4:48 pm ]
Post subject:  Re: Запуск на 80486

CleverMouse wrote:
Если бы простой перекомпиляции было достаточно - это давно бы уже сделали
Ладно, когда-нибудь. Ориентироваться на 486 нет смысла, это точно. Спасибо за ответы. Поставлю пока FreeDOS.

Author:  yogev_ezra [ Fri Oct 25, 2013 8:26 pm ]
Post subject:  Re: Запуск на 80486

red.kaktus.37 wrote:
yogev_ezra wrote:
Заменить нужно всего 5 строчек.

не совсем. я менял, оська запускалась до инициализации чего-то и тухла. должно быть что-то ещё, но что, я так и не понял. 8-битный авр - вот предел моего асма :(
Я к тому, что начинать нужно было с этих 5 строчек, которые вам обоим предложили попробовать, а уже если это не помогало, то отписываться на форуме и ждать дальнейших инструкций. (А не писать сразу, что всё сложно и перечитывать все исходники ядра нет времени и знаний).
Akyltist wrote:
yogev_ezra wrote:
Используется RDTSC

видимо не только она, а еще и команды из той лодки
WRMSR - Write the value in EDX:EAX to MSR specified by ECX
RDMSR - Load MSR specified by ECX into EDX:EAX
Code:
kernel\trunk\core\memory.inc
kernel\trunk\kernel.asm
kernel\trunk\sec_loader\trunk\listing.inc
kernel\trunk\sec_loader\trunk\loader.asm
Я имел в виду, что как минимум RDTSC, который используется ещё на этапе загрузки ядра, и начинать заменять на 486-совместимый код нужно с этого.

Author:  vkolibri [ Mon Oct 28, 2013 3:26 pm ]
Post subject:  Re: Запуск на 80486

yogev_ezra wrote:
kernel\trunk\kernel.asm
kernel\trunk\sec_loader\trunk\listing.inc
kernel\trunk\sec_loader\trunk\loader.asm
А, скажите, не нашлось бы у вас минутки, чтобы в вышеуказанных файлах тупо произвести замену:
++++++++++++++
rdtsc
------------------
на
++++++++++++++
mov eax,1000000
mov edx,1000000
------------------
и скомпилировать вышеуказанные файлы? У вас настроен ассемблер, или надо инсталлировать?

Понятно, что значение в регистрах будет левым, но хотя бы пусть на одной частоте поработает для теста, главное запустить. Что-то я не могу уняться =)

если зависнет, то:
++++++++++++++
add eax,1
mov edx,1000000
------------------
Пускай наугад считает

Page 4 of 5 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/