Board.KolibriOS.org

Official KolibriOS board
It is currently Wed May 22, 2019 8:23 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 73 posts ]  Go to page Previous 1 2 3 4 5 Next
Author Message
PostPosted: Thu Oct 24, 2013 5:15 pm 
Offline
Public Relations
User avatar

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


Top
   
PostPosted: Thu Oct 24, 2013 6:35 pm 
Offline

Joined: Mon Oct 14, 2013 5:41 pm
Posts: 21
Прошу прощения, виноват.
Все понял.


Top
   
PostPosted: Fri Oct 25, 2013 9:44 am 
Offline
User avatar

Joined: Mon Feb 18, 2013 11:17 am
Posts: 16
yogev_ezra wrote:
Заменить нужно всего 5 строчек.

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


Top
   
PostPosted: Fri Oct 25, 2013 11:04 am 
Offline
KSoC/GSoC Student

Joined: Wed Jul 11, 2012 3:17 am
Posts: 224
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


Top
   
PostPosted: Fri Oct 25, 2013 11:54 am 
Offline

Joined: Mon Oct 14, 2013 5:41 pm
Posts: 21
red.kaktus.37 wrote:
...8-битный авр - вот предел моего асма :(

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


Top
   
PostPosted: Fri Oct 25, 2013 12:04 pm 
Offline
User avatar

Joined: Mon Feb 18, 2013 11:17 am
Posts: 16
avr - 8-ми битные контроллеры (есть конечно и 32бита) фирмы атмел (там асм весь в мнемониках, чистого интеловского нет)


Top
   
PostPosted: Fri Oct 25, 2013 12:16 pm 
Offline
User avatar

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


Top
   
PostPosted: Fri Oct 25, 2013 1:29 pm 
Offline

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

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


Top
   
PostPosted: Fri Oct 25, 2013 2:12 pm 
Offline
Kernel Developer

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

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

Image

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Fri Oct 25, 2013 3:10 pm 
Offline

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


Last edited by vkolibri on Fri Oct 25, 2013 6:10 pm, edited 1 time in total.

Top
   
PostPosted: Fri Oct 25, 2013 4:33 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1619
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 показала их наличие. Либо если программа явно попросила, но тогда ядро просто прибьёт такую программу.

_________________
Сделаем мир лучше!


Top
   
PostPosted: Fri Oct 25, 2013 4:41 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1619
vkolibri wrote:
Подождем. Может быть авторы системы когда-нибудь на минутку освободятся и перекомпилируют систему для 486

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

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

_________________
Сделаем мир лучше!


Top
   
PostPosted: Fri Oct 25, 2013 4:48 pm 
Offline

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


Top
   
PostPosted: Fri Oct 25, 2013 8:26 pm 
Offline
Public Relations
User avatar

Joined: Mon Jun 07, 2010 12:01 pm
Posts: 1879
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-совместимый код нужно с этого.


Top
   
PostPosted: Mon Oct 28, 2013 3:26 pm 
Offline

Joined: Mon Oct 14, 2013 5:41 pm
Posts: 21
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
------------------
Пускай наугад считает


Last edited by vkolibri on Mon Oct 28, 2013 3:35 pm, edited 1 time in total.

Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 73 posts ]  Go to page Previous 1 2 3 4 5 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited