Запуск на 80486

Internal structure and you change requests/suggestions
  • Прошу прощения, виноват.
    Все понял.
  • yogev_ezra wrote: Заменить нужно всего 5 строчек.
    не совсем. я менял, оська запускалась до инициализации чего-то и тухла. должно быть что-то ещё, но что, я так и не понял. 8-битный авр - вот предел моего асма :(
  • 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: Select all

    kernel\trunk\core\memory.inc
    kernel\trunk\kernel.asm
    kernel\trunk\sec_loader\trunk\listing.inc
    kernel\trunk\sec_loader\trunk\loader.asm
    
  • red.kaktus.37 wrote:...8-битный авр - вот предел моего асма :(
    А что такое "авр"?
  • avr - 8-ми битные контроллеры (есть конечно и 32бита) фирмы атмел (там асм весь в мнемониках, чистого интеловского нет)
  • в далёком прошлом когда начал программировать на вижуал бэсике (тогда достаточно модном), меня всё больше и больше терзала платформенность того что я пишу (на тот момент написал какаю то управляшку с лпт, саморазмножающийся "вирус" на основе скриптов и блокнот умеющий читать более 5кило в отличии от микрософтовского, который тупо вис на неопределённое время :)) порой бросал и удалял всё начатое... пока не увидел какой-то пик одноразовый (с индексом С) у отца на работе, там дядька сослуживец замутил на нём (на пике) машинку сыну, всего 4 команды и те на проводном пульте, но тогда то я и понял, что всё что пишется на компе не имеет особой для меня ценности из-за того, что нельзя принести к другу в школу это убожество с быдлокодом и продемонстрировать как это чудо ещё и работает! с тех пор сожжено не мало камней а программирование на пк начал осваивать с ноля, т.к. си это не виж.бэйс )
    правда сейчас появились в народе компы которые работают от батареек и носятся в кармане... но это уже другая история )))
    прошу пардона муа за флуд и офф-топ )))
  • Подождем. Может быть авторы системы когда-нибудь на минутку освободятся и перекомпилируют систему для 486. Вообще, говоря о Visual Basic, даже в QBasic была опция "компилировать для 286". Компилятор сам искал то, что идет на пентиумах и "эмулировал" в виде, который может быть исполнен на 80286. То есть в таком ассемблере Колибри ОС можно компилировать под любые процессоры, если бы он был. Другое дело, если вопрос касается ОЗУ, к которому 486 не может обратиться в отличие от пентиума, тогда все скомпилируется как надо, но работать не будет. И это знают только разработчики.
    ps:
    Это к вопросу, что рано или поздно необходимо будет произвести разделение кода - низкий, машинозависимый уровень и верхний. Для разных камней останется править только нижний.

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

    Image
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Mario_r4 wrote:Это мнение большого специалиста в ФАСМ?
    Неа, просто фантазирую. Понравилась сама идея. При встрече сложной (для 80486) команды, смотреть флажок компиляции и "разворачивать" код для 286. Если флажка нет, тупо вставлять инструкции пентиум.
    Ну вот и помечтал, что такой бы компилятор отыскать, он и под ARM скомпилирует, останется только с портами и памятью разобраться.
    Last edited by vkolibri on Fri Oct 25, 2013 6:10 pm, edited 1 time in total.
  • 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: Select all

    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 показала их наличие. Либо если программа явно попросила, но тогда ядро просто прибьёт такую программу.
    Сделаем мир лучше!
  • vkolibri wrote:Подождем. Может быть авторы системы когда-нибудь на минутку освободятся и перекомпилируют систему для 486
    Если бы простой перекомпиляции было достаточно - это давно бы уже сделали:
    red.kaktus.37 wrote:не совсем. я менял, оська запускалась до инициализации чего-то и тухла. должно быть что-то ещё, но что, я так и не понял
    Раз простой замены недостаточно, нужно выяснять, в чём дело, а ни у кого из разработчиков давно нет таких машин.
    Сделаем мир лучше!
  • CleverMouse wrote:Если бы простой перекомпиляции было достаточно - это давно бы уже сделали
    Ладно, когда-нибудь. Ориентироваться на 486 нет смысла, это точно. Спасибо за ответы. Поставлю пока FreeDOS.
  • 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: Select all

    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-совместимый код нужно с этого.
  • 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.
  • Who is online

    Users browsing this forum: Yandex [Bot] and 4 guests