Posted: Tue Nov 07, 2006 10:11 pm
Спасибо, Женя!
Эмулятор поддерживает краткую версию таблицы, на 10 байт, потому что это нужно для работы sysxtree. Эмулятор не поддерживает полную версию таблицы, поскольку она нигде не используется.Mario79 wrote:Эмулятор не поддерживает F18/11, меня терзают смутные сомнения, что из ядра она когда-нибудь исчезнет...
Во-первых, в винде можно ассоциировать пустое расширение с программой, правда, единственный известный мне способ - лезть ручками в реестр (HKEY_CLASSES_ROOT) и делать по аналогии с каким-нибудь уже существующим расширением. Во-вторых, лично я работаю в Far, используя собственный плагин, и мне вообще пофиг расширение - хоть пустое, хоть .bin, хоть .kex. kfar'у тоже пофиг - если расширение файла не находится в списке известных, он недолго думая передаёт файл функции запуска 70.7. В-третьих, есть доводы за пустое расширение: во-первых, привычка, во-вторых, это экономит 4 байта при записи имени запускаемого приложения в программах (/rd/1/tinypad короче, чем /rd/1/tinypad.kex) - мелочь, конечно, но факт.В винде я использую расширение kex для запуска приложений через эмулятор
А зачем бы это там mcall 10? Вроде бы mcall 2 просто считывает клавишу из буфера, а нажатие стрелок помещает в буфер сразу два кода. Разве что обработка сообщения о первом приходе irq1 -> нажатии клавиши происходит так быстро, что клавиатура просто не успевает послать второй байт - но полагаться на это слишком ненадёжно. (В винде на каждое нажатие стрелок приходит только одно сообщение, соответственно эмулятор вынужден помещать сообщения парой).Обнаружил в эмуляторе особенность - можно два раза вызывать mcall 2 (для обработки расширенного набора клавиш), а на реальной машине должен присутвовать mcall 10 между ними, иначе не будет обработки клавиш (например стрелок).
Странно я не смог получить нормальные результаты, может в конфигурации нужно что-то прописать?Эмулятор поддерживает краткую версию таблицы, на 10 байт, потому что это нужно для работы sysxtree.
Я писал о различиях между реальной системой и эмулятором - на реальной системе не работает, а в эмуляторе работает.А зачем бы это там mcall 10? Вроде бы mcall 2 просто считывает клавишу из буфера, а нажатие стрелок помещает в буфер сразу два кода. Разве что обработка сообщения о первом приходе irq1 -> нажатии клавиши происходит так быстро, что клавиатура просто не успевает послать второй байт - но полагаться на это слишком ненадёжно. (В винде на каждое нажатие стрелок приходит только одно сообщение, соответственно эмулятор вынужден помещать сообщения парой).
Так и я про то же. Точнее, в первой части я описывал поведение на реальной системе - если причина именно в этом, то а) иногда работать всё же будет (зависит от загруженности процессора, механизма переключения потоков и т.д.) и б) необязательно делать mcall 10, можно, например, mcall 5,1 или просто выполнить любую долгую операцию (что означает "долгую", очень сильно зависит от компа и текущего состояния).Я писал о различиях между реальной системой и эмулятором - на реальной системе не работает, а в эмуляторе работает.
У меня замедлился не запуск, а работа эмулятора в целом без kiwntf.exe. Окна отрисовываются около секунды, trantest рисует что-то около 700 треугольников в секунду (после запуска kiwntf фпс вырастают до 22 тысяч). Проверил новую версию: все в точности так же, как в предыдущем посте.Задержка при запуске почему-то сильно зависит от условий запуска: так, из-под Far'а при запуске через плагин и через командную строку в одном случае получалось ~1.5c, в другом ~3с.