Board.KolibriOS.org

Official KolibriOS board
It is currently Fri Dec 13, 2019 11:01 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 74 posts ]  Go to page Previous 1 2 3 4 5 Next
Author Message
PostPosted: Sun Mar 11, 2018 7:55 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5067
0CodErr
Вот это менясмутило http://prntscr.com/ipqgnr
Там точно про х64 и запуск на Vista/7/10 ничего нет?

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


Top
   
PostPosted: Sun Mar 11, 2018 9:59 pm 
Offline

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

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


Top
   
PostPosted: Sun Mar 11, 2018 10:27 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5067
Понял, давай все же не будем довить на мозоли и так уже потерями Марио и Диамонда.

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


Top
   
PostPosted: Sun Mar 11, 2018 10:29 pm 
Offline

Joined: Sun Aug 09, 2015 3:41 pm
Posts: 110
http://www.alex-ionescu.com/?p=340


Top
   
PostPosted: Sun Mar 11, 2018 10:33 pm 
Offline

Joined: Wed Mar 26, 2008 12:44 pm
Posts: 225
0CodErr wrote:
Некоторые приложения пишут\читают изображения "directly to\from LFB" — это тоже не поддерживается.

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

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

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

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


Last edited by tsdima on Sun Mar 11, 2018 10:55 pm, edited 1 time in total.

Top
   
PostPosted: Sun Mar 11, 2018 10:39 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5067
Windows XP SP3 x32 со всеми обновлениями - kEm РАБОТАЕТ http://prntscr.com/ipsmpv Image

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


Last edited by Leency on Sun Mar 11, 2018 10:56 pm, edited 1 time in total.

Top
   
PostPosted: Sun Mar 11, 2018 10:43 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
tsdima wrote:
А как ты собираешься сказать процессору, что ты хочешь запустить 32-битный код?
Так же, как и для всех остальных 32-битных программ.
32-битная программа вполне работает и на x64.


Top
   
PostPosted: Sun Mar 11, 2018 11:00 pm 
Offline

Joined: Wed Mar 26, 2008 12:44 pm
Posts: 225
0CodErr wrote:
32-битная программа вполне работает и на x64

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


Top
   
PostPosted: Sun Mar 11, 2018 11:11 pm 
Offline

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


Top
   
PostPosted: Sun Mar 11, 2018 11:23 pm 
Offline

Joined: Wed Mar 26, 2008 12:44 pm
Posts: 225
0CodErr wrote:
"Read File error" — значит, что не загружен файл куда надо(по смещению 0).

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


Top
   
PostPosted: Sun Mar 11, 2018 11:29 pm 
Offline

Joined: Wed Mar 26, 2008 12:44 pm
Posts: 225
0CodErr wrote:
Я о том, что можно взять, скажем, какой-нибудь 32-битный калькулятор и запустить эту программу на x64, и она запустится и будет работать.

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


Top
   
PostPosted: Sun Mar 11, 2018 11:57 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
tsdima wrote:
0CodErr wrote:
"Read File error" — значит, что не загружен файл куда надо(по смещению 0).

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


Top
   
PostPosted: Mon Mar 12, 2018 12:10 pm 
Offline

Joined: Wed Mar 26, 2008 12:44 pm
Posts: 225
0CodErr wrote:
tsdima, ты лучше по-конкретней.

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

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

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

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

Win 7 x64

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


Top
   
PostPosted: Wed Mar 14, 2018 8:08 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Реализовал поддержку DrawText.
Для этого был взят необходимый код из ядра KolibriOS из файлов font.inc и parse_fn.inc.
На 99% взятый код остался без изменений.
Были заменены вызовы функций kernel_free, kernel_alloc, syscall_getpixel, __sys_putpixel
на эмулирующие, которые вызывают функции Windows.
Attachment:
KEm.7z [44.06 KiB]
Downloaded 93 times
Так выглядит tinfo:
Spoiler: Show
Attachment:
tinfo1.PNG
tinfo1.PNG [ 27.37 KiB | Viewed 3934 times ]
Для реализации 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:
Spoiler: Show
Attachment:
almaz.PNG
almaz.PNG [ 22.26 KiB | Viewed 3934 times ]


Top
   
PostPosted: Wed Mar 14, 2018 9:07 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5067
Клево, шрифты как раз одно из слабых мест KlbrInWin - т.к. новый большой шрифт не поддерживается.

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


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 74 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 1 guest


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