MeView by Nable

Processing, playback of audio and video
  • 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.
    Attachments
    MeView.zip (208.12 KiB)
    Downloaded 427 times
  • Извини, но твой пример не запускается ни в эмуле, ни в самой Колибри.
    Из хаоса в космос
  • to Leency
    Пример запускается, просто мне было вилы приделывать текстовое поле, поэтому путь к картинке предается в качестве параметра - смотри сорцы!
  • diamond:
    "только Nable делает одну в корне неправильную, хотя и работающую в текущей системе, вещь
    сейчас вызов системной функции 0x1F40 эквивалентен вызову системной функции 0x40
    но когда число сисфункций перевалит за 256, его поделка перестанет работать
    в эмуляторе это не работает уже сейчас. из принципа."

    Согласен, дибилизм, т.к. эмулятор должен работать как система, а не лучше.
    Итого, создатели front-end'ов не смогут нормально протестировать создаваемые приложения.
    Кстати, проверь почту sanshok <песик> narod <крапка> ru, там тебе диамонд ещё чё-то прислать должен был.
    Из хаоса в космос
  • Эх, эта тема поднималась уже несколько раз. Давайте на что нибудь решимся?
    Или: говорим что в будущем не может быть больше 256 функций (впринципе нормальное ограничение), и тогда вещи типа mov eax, 0x1f40 / int 0x40 впринципе легальны и помогают в некоторых случаях а) уменьшить размер программы б) передавать дополнительные данные с старшей части eax.
    Или: убираем из обработчиков сис.вызовов "and eax, 0xff", что дает нам экономию тактов на каждый сис.вызов (хотя и незаметную) и теоретичеки более правильню реализацию.
    Кто что думает?
  • Можно оставить 256, а когда припрет завести еще одно прерывание, для функций нового поколения, и отпраздновать это как следует ;-).

    ..bw
  • to Ghost
    А ещё меня всегда удивляло - почему в системном вызове and eax,0xFF, а не movzx eax,al?
    А про мою наглую оптимизацию - всегда было такое дело, и я вообще считаю, что кол-во функций в ядре не должно быть большим, хотя многое разумно оставить в ядре.
  • 2Nable: а хз ) я не помню, ИМХО разницы нет, только чуть меньший размер...
  • To Ghost
    Разницы много, если смотреть с точки зрения асма - во-первых на 1 байт меньше (2 вместо 3), во-вторых не используются непосредственные значения (imm), т.е. один или больше тактов не уходят на penalty. А к тому же не модифицируются флаги (вроде бы), ещё выигрыш. Учитывая сколько вызываются int 0x40, выигрыш приличный (мой проц не поддерживает быстрые вызовы, по крайней мере в Колибри)
  • Разобрался я с вопросом )) Просто раньше был код:

    Code: Select all

    mov edi, [esp + 28]
    and edi, 0xff
    call [servtab + edi * 4]
    когда убирал изменение порядка регистров, просто переписал на

    Code: Select all

    and eax, 0xff
    call [servtab + eax*4]
    уже исправил на movzx

    Почему не работают быстрые вызовы? WinXP работает? Что за процессор? Попробуй запустить программу [url]svn://kolibrios.org/programs/develop/fast_call_test[/url]
  • to Ghost
    Coppermine. WinXP естественно работает, но я не уверен, что работает в Колибри.
  • Nable читай личку.
  • to Ghost
    Прочитал, раньше чем черещ неделю не проверю - домашний комп пока дома.

    by Ghost
    логично )))
  • to Leency
    Как дело продвигается? Или ьольше попыток не было?
  • Who is online

    Users browsing this forum: No registered users and 7 guests