to Serge
Спасибо, впрочем я сейчас завязываю с вредными привычками (удаляю со всех винтов пиратские винды и даже MS-DOS (даже за него могут тра\\уть, если захотят), пытаюсь приучить себя к Линуху, может через пару лет стану писать под gcc).
to everybody (especially to Leency)
If you setup DosBox settings correctly, you can easily compile programs on C-- under Kolibri. It works, really.
MeView by Nable
to everybody
Here is the last release that I do from my native city (I think) in this year because on Thursday (21st August) I go to Moscow to study there.
As usual, read docs.
Here is the last release that I do from my native city (I think) in this year because on Thursday (21st August) I go to Moscow to study there.
As usual, read docs.
- Attachments
-
-
MeView.zip (208.12 KiB)Downloaded 428 times
-
Извини, но твой пример не запускается ни в эмуле, ни в самой Колибри.
Из хаоса в космос
to Leency
Пример запускается, просто мне было вилы приделывать текстовое поле, поэтому путь к картинке предается в качестве параметра - смотри сорцы!
Пример запускается, просто мне было вилы приделывать текстовое поле, поэтому путь к картинке предается в качестве параметра - смотри сорцы!
diamond:
"только Nable делает одну в корне неправильную, хотя и работающую в текущей системе, вещь
сейчас вызов системной функции 0x1F40 эквивалентен вызову системной функции 0x40
но когда число сисфункций перевалит за 256, его поделка перестанет работать
в эмуляторе это не работает уже сейчас. из принципа."
Согласен, дибилизм, т.к. эмулятор должен работать как система, а не лучше.
Итого, создатели front-end'ов не смогут нормально протестировать создаваемые приложения.
Кстати, проверь почту sanshok <песик> narod <крапка> ru, там тебе диамонд ещё чё-то прислать должен был.
"только Nable делает одну в корне неправильную, хотя и работающую в текущей системе, вещь
сейчас вызов системной функции 0x1F40 эквивалентен вызову системной функции 0x40
но когда число сисфункций перевалит за 256, его поделка перестанет работать
в эмуляторе это не работает уже сейчас. из принципа."
Согласен, дибилизм, т.к. эмулятор должен работать как система, а не лучше.
Итого, создатели front-end'ов не смогут нормально протестировать создаваемые приложения.
Кстати, проверь почту sanshok <песик> narod <крапка> ru, там тебе диамонд ещё чё-то прислать должен был.
Из хаоса в космос
Эх, эта тема поднималась уже несколько раз. Давайте на что нибудь решимся?
Или: говорим что в будущем не может быть больше 256 функций (впринципе нормальное ограничение), и тогда вещи типа mov eax, 0x1f40 / int 0x40 впринципе легальны и помогают в некоторых случаях а) уменьшить размер программы б) передавать дополнительные данные с старшей части eax.
Или: убираем из обработчиков сис.вызовов "and eax, 0xff", что дает нам экономию тактов на каждый сис.вызов (хотя и незаметную) и теоретичеки более правильню реализацию.
Кто что думает?
Или: говорим что в будущем не может быть больше 256 функций (впринципе нормальное ограничение), и тогда вещи типа mov eax, 0x1f40 / int 0x40 впринципе легальны и помогают в некоторых случаях а) уменьшить размер программы б) передавать дополнительные данные с старшей части eax.
Или: убираем из обработчиков сис.вызовов "and eax, 0xff", что дает нам экономию тактов на каждый сис.вызов (хотя и незаметную) и теоретичеки более правильню реализацию.
Кто что думает?
Можно оставить 256, а когда припрет завести еще одно прерывание, для функций нового поколения, и отпраздновать это как следует ;-).
..bw
..bw
to Ghost
А ещё меня всегда удивляло - почему в системном вызове and eax,0xFF, а не movzx eax,al?
А про мою наглую оптимизацию - всегда было такое дело, и я вообще считаю, что кол-во функций в ядре не должно быть большим, хотя многое разумно оставить в ядре.
А ещё меня всегда удивляло - почему в системном вызове and eax,0xFF, а не movzx eax,al?
А про мою наглую оптимизацию - всегда было такое дело, и я вообще считаю, что кол-во функций в ядре не должно быть большим, хотя многое разумно оставить в ядре.
2Nable: а хз ) я не помню, ИМХО разницы нет, только чуть меньший размер...
To Ghost
Разницы много, если смотреть с точки зрения асма - во-первых на 1 байт меньше (2 вместо 3), во-вторых не используются непосредственные значения (imm), т.е. один или больше тактов не уходят на penalty. А к тому же не модифицируются флаги (вроде бы), ещё выигрыш. Учитывая сколько вызываются int 0x40, выигрыш приличный (мой проц не поддерживает быстрые вызовы, по крайней мере в Колибри)
Разницы много, если смотреть с точки зрения асма - во-первых на 1 байт меньше (2 вместо 3), во-вторых не используются непосредственные значения (imm), т.е. один или больше тактов не уходят на penalty. А к тому же не модифицируются флаги (вроде бы), ещё выигрыш. Учитывая сколько вызываются int 0x40, выигрыш приличный (мой проц не поддерживает быстрые вызовы, по крайней мере в Колибри)
Разобрался я с вопросом )) Просто раньше был код:
когда убирал изменение порядка регистров, просто переписал на
уже исправил на movzx
Почему не работают быстрые вызовы? WinXP работает? Что за процессор? Попробуй запустить программу [url]svn://kolibrios.org/programs/develop/fast_call_test[/url]
Code: Select all
mov edi, [esp + 28]
and edi, 0xff
call [servtab + edi * 4]
Code: Select all
and eax, 0xff
call [servtab + eax*4]
Почему не работают быстрые вызовы? WinXP работает? Что за процессор? Попробуй запустить программу [url]svn://kolibrios.org/programs/develop/fast_call_test[/url]
to Ghost
Coppermine. WinXP естественно работает, но я не уверен, что работает в Колибри.
Coppermine. WinXP естественно работает, но я не уверен, что работает в Колибри.
Nable читай личку.
to Ghost
Прочитал, раньше чем черещ неделю не проверю - домашний комп пока дома.
by Ghost
логично )))
Прочитал, раньше чем черещ неделю не проверю - домашний комп пока дома.
by Ghost
логично )))
to Leency
Как дело продвигается? Или ьольше попыток не было?
Как дело продвигается? Или ьольше попыток не было?
Who is online
Users browsing this forum: Bing [Bot] and 6 guests