Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Сб июн 23, 2018 9:11 pm

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 63 сообщения ]  На страницу Пред. 1 2 3 4 5 След.
Автор Сообщение
 Заголовок сообщения: Re: Эмуляция KolibriOS API
СообщениеДобавлено: Вс мар 11, 2018 7:55 pm 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4450
0CodErr
Вот это менясмутило http://prntscr.com/ipqgnr
Там точно про х64 и запуск на Vista/7/10 ничего нет?

_________________
Через тернии к звездам


Вернуться к началу
 Заголовок сообщения: Re: Эмуляция KolibriOS API
СообщениеДобавлено: Вс мар 11, 2018 9:59 pm 
Не в сети

Зарегистрирован: Вс окт 30, 2011 6:43 pm
Сообщения: 1277
Leency писал(а):
Вот это менясмутило http://prntscr.com/ipqgnr
мвахаха!!!! Ох лол!!! Советую автору сего поделия поучить матчасть для начала. eax на rax он заменил :lol: думает так заработает :lol:
Кто не помнит, ALEXS1983 — это который viewtopic.php?f=33&t=3388&p=66309#p66309

Leency, там всё та же SetLDTEntries, которая под x64 работать не будет.
Leency писал(а):
Vista/7/10
pavelyakov писал(а):
Из-за чего с windows 7 и выше не запускается? Это возможно из-за защиты windows?
Насколько я смог нагуглить, это появилось в одном из обновлений безопасности на семёрке.
То есть, теоретически, на каких-то семёрках оно может работать.
Возможно на висте работает.
Мой вариант не использует SetLDTEntries, и, по идее(если я ничего больше не упустил :roll: ) должен на x64 тоже запуститься.
Хорошо бы проверить XP 64 bit, Vista 32 bit и 64 bit.
Kopa писал(а):
Здесь какое то видео.
В EMET самом можно галочку просто снять. Но теперь это уже похоже на уровне системы.


Вернуться к началу
 Заголовок сообщения: Re: Эмуляция KolibriOS API
СообщениеДобавлено: Вс мар 11, 2018 10:27 pm 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4450
Понял, давай все же не будем довить на мозоли и так уже потерями Марио и Диамонда.

_________________
Через тернии к звездам


Вернуться к началу
 Заголовок сообщения: Re: Эмуляция KolibriOS API
СообщениеДобавлено: Вс мар 11, 2018 10:29 pm 
Не в сети

Зарегистрирован: Вс авг 09, 2015 3:41 pm
Сообщения: 84
http://www.alex-ionescu.com/?p=340


Вернуться к началу
 Заголовок сообщения: Re: Эмуляция KolibriOS API
СообщениеДобавлено: Вс мар 11, 2018 10:33 pm 
Не в сети

Зарегистрирован: Ср мар 26, 2008 12:44 pm
Сообщения: 167
0CodErr писал(а):
Некоторые приложения пишут\читают изображения "directly to\from LFB" — это тоже не поддерживается.

Пока что в процессе отладки своего эмулятора обнаружил лишь три такие программы, все три в каталоге /kolibrios/games/codemaster

0CodErr писал(а):
Мой вариант не использует SetLDTEntries, и, по идее(если я ничего больше не упустил :roll: ) должен на x64 тоже запуститься.

Что-то сомневаюсь я. А как ты собираешься сказать процессору, что ты хочешь запустить 32-битный код?

Вот в Linux-е есть modify_ldt как в 32-битной ОС, так и в её 64-битном варианте. Благодаря чему, я надеюсь, можно будет скомпилить мой эмуль и для 32-битного Linux-а (пока разработка идёт только под 64-битной версией).


Последний раз редактировалось tsdima Вс мар 11, 2018 10:55 pm, всего редактировалось 1 раз.

Вернуться к началу
 Заголовок сообщения: Re: Эмуляция KolibriOS API
СообщениеДобавлено: Вс мар 11, 2018 10:39 pm 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4450
Windows XP SP3 x32 со всеми обновлениями - kEm РАБОТАЕТ http://prntscr.com/ipsmpv Изображение

_________________
Через тернии к звездам


Последний раз редактировалось Leency Вс мар 11, 2018 10:56 pm, всего редактировалось 1 раз.

Вернуться к началу
 Заголовок сообщения: Re: Эмуляция KolibriOS API
СообщениеДобавлено: Вс мар 11, 2018 10:43 pm 
Не в сети

Зарегистрирован: Вс окт 30, 2011 6:43 pm
Сообщения: 1277
tsdima писал(а):
А как ты собираешься сказать процессору, что ты хочешь запустить 32-битный код?
Так же, как и для всех остальных 32-битных программ.
32-битная программа вполне работает и на x64.


Вернуться к началу
 Заголовок сообщения: Re: Эмуляция KolibriOS API
СообщениеДобавлено: Вс мар 11, 2018 11:00 pm 
Не в сети

Зарегистрирован: Ср мар 26, 2008 12:44 pm
Сообщения: 167
0CodErr писал(а):
32-битная программа вполне работает и на x64

И что, вообще нет отличий?


Вернуться к началу
 Заголовок сообщения: Re: Эмуляция KolibriOS API
СообщениеДобавлено: Вс мар 11, 2018 11:11 pm 
Не в сети

Зарегистрирован: Вс окт 30, 2011 6:43 pm
Сообщения: 1277
tsdima, ты лучше по-конкретней.
Конечно есть различия.
Я о том, что можно взять, скажем, какой-нибудь 32-битный калькулятор и запустить эту программу на x64, и она запустится и будет работать.
Вопрос в том, какие конкретно различия должны нас интересовать.


Вернуться к началу
 Заголовок сообщения: Re: Эмуляция KolibriOS API
СообщениеДобавлено: Вс мар 11, 2018 11:23 pm 
Не в сети

Зарегистрирован: Ср мар 26, 2008 12:44 pm
Сообщения: 167
0CodErr писал(а):
"Read File error" — значит, что не загружен файл куда надо(по смещению 0).

У меня аналогично, тоже на х64.
А ReadFile случайно не проверяет указатель на ноль?


Вернуться к началу
 Заголовок сообщения: Re: Эмуляция KolibriOS API
СообщениеДобавлено: Вс мар 11, 2018 11:29 pm 
Не в сети

Зарегистрирован: Ср мар 26, 2008 12:44 pm
Сообщения: 167
0CodErr писал(а):
Я о том, что можно взять, скажем, какой-нибудь 32-битный калькулятор и запустить эту программу на x64, и она запустится и будет работать.

В том, что ОС имеет поддержку запуска 32-битных программ, я не сомневаюсь. Но, например, в списке задач на x64-битной винде после имени, если это 32-битная программа, указано *32. То есть, отличие в процессах делается неспроста? Хотелось бы знать - зачем, если разницы в исполнении 32/64 нет.


Вернуться к началу
 Заголовок сообщения: Re: Эмуляция KolibriOS API
СообщениеДобавлено: Вс мар 11, 2018 11:57 pm 
Не в сети

Зарегистрирован: Вс окт 30, 2011 6:43 pm
Сообщения: 1277
tsdima писал(а):
0CodErr писал(а):
"Read File error" — значит, что не загружен файл куда надо(по смещению 0).

У меня аналогично, тоже на х64.
А ОС какая?
tsdima писал(а):
А ReadFile случайно не проверяет указатель на ноль?
Вроде не должна. Можно взять VMMap и посмотреть, что стало с регионом памяти 0..64K. Скорее всего NtAllocateVirtualMemory не отрабатывает.


Вернуться к началу
 Заголовок сообщения: Re: Эмуляция KolibriOS API
СообщениеДобавлено: Пн мар 12, 2018 12:10 pm 
Не в сети

Зарегистрирован: Ср мар 26, 2008 12:44 pm
Сообщения: 167
0CodErr писал(а):
tsdima, ты лучше по-конкретней.

1. Команды, место которых заняли префиксы REX. А это, на минуточку, INC/DEC r16/32
2. Отрицательное смещение в регистре, типа
Код:
mov ecx,-300
mov eax,[ebp+ecx]

На мой взгляд, тут будет адресация не назад, а вперёд на почти 4Gb

3. Опкоды некоторых команд типа AAA, AAS в 64-битном режиме invalid

0CodErr писал(а):
tsdima писал(а):
У меня аналогично, тоже на х64.
А ОС какая?

Win 7 x64

Может стоит добавить вывод GetLastError при выводе ошибок?
Да и анализ на ошибку в большем количестве мест, например при маппинге нулевых 64Кб.


Вернуться к началу
 Заголовок сообщения: Re: Эмуляция KolibriOS API
СообщениеДобавлено: Ср мар 14, 2018 8:08 pm 
Не в сети

Зарегистрирован: Вс окт 30, 2011 6:43 pm
Сообщения: 1277
Реализовал поддержку DrawText.
Для этого был взят необходимый код из ядра KolibriOS из файлов font.inc и parse_fn.inc.
На 99% взятый код остался без изменений.
Были заменены вызовы функций kernel_free, kernel_alloc, syscall_getpixel, __sys_putpixel
на эмулирующие, которые вызывают функции Windows.
Вложение:
KEm.7z [44.06 КБ]
17 скачиваний
Так выглядит tinfo:
Спойлер: Показать
Вложение:
tinfo1.PNG
tinfo1.PNG [ 27.37 КБ | 402 просмотра ]
Для реализации DrawNumber можно сначала преобразовать число в соответствии с форматом в строку,
а затем передать полученную строку в DrawText.
Похожим образом сделано в
  • KlbrInWin — функция "i40_display_number" в файле "I40EMUL.INC"
  • MeOSEmul — функция "func _47 ;///// DRAW NUMBER" в файле "Emul_MeOS.asm"
  • а также в ядре KolibriOS — функция "display_number" в файле "kernel.asm"

Также начал реализацию функции SysFn2:GetKey.
Теперь можно поиграть в некоторые игрушки, например, Heliothryx, Arcanii, Invaders, Piton(by Albom), Donkey(by Albom).
Работает пример "{3} GetKey, DrawText" из первого сообщения темы Delphi7 examples viewtopic.php?f=33&t=3469#p68254 можно вводить как английские, так и русские символы при переключении раскладки.

Можно поиграть в игру ALMAZ:
Спойлер: Показать
Вложение:
almaz.PNG
almaz.PNG [ 22.26 КБ | 402 просмотра ]


Вернуться к началу
 Заголовок сообщения: Re: Эмуляция KolibriOS API
СообщениеДобавлено: Ср мар 14, 2018 9:07 pm 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4450
Клево, шрифты как раз одно из слабых мест KlbrInWin - т.к. новый большой шрифт не поддерживается.

_________________
Через тернии к звездам


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 63 сообщения ]  На страницу Пред. 1 2 3 4 5 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB