Новый эмулятор

Running Kolibri and its programs in other OSes
  • Хмм... надо будет посмотреть реализацию... в meosemul
    Впрочем, быстрого вызова системных функций я не обещал - процессор работает "вживую", но системные функции эмулируются. Видимо, соответствующая часть в meosemul'е написана лучше.
  • Просто насколько это понимаю я, возможно неправильно работает таймер, потому что обновляется у тебя быстрее, как-то нездорово мне кажется.
  • Упс... это была глупейшая ошибка... fixed
    (Здесь и далее слова "качать там же" опускаются).
    Винда, конечно, тормозит, но не на порядок. trantest: Kolibri: ~5200-5300; 98: ~5000-5300; XP: ~3300-3400. Для сравнения под MeOSEmul - ~400.
  • Ну вот видишь, уже другое дело ;)
  • У меня Linux/EXT3. Посему с харда не смогу пустить. А дисковод сдох.
  • Diamond, отличный змулятор получился, но есть одно но, заставляющее меня использовать эмулятор майка. В винде у меня все файлы без расширения с ним ассоциированы. Очень удобно получается: можно запускать программы колибри двумя кликами мыши :) Проделать то же с твоим не получилось: "Input file read error" :( . Можно ли это как-нибудь исправить?
    Может я и слишком ленивый, но ломает каждый раз открывать эмулятор, открывать путь к нужной проге и уже только потом запускать ее :).
  • Heavyiron
    Скорее всего, причина в том, что эмулятор пытается считать настройки из ini-файла, который ищет в текущем каталоге - в результате ini-файла нет, что и приводит к глюкам. Если это так, то это легко поправить - просто считывать из каталога с exe'шником. Скоро так и будет.
    willow (чтение Enter)
    Мда? Странно... надо будет посмотреть...
  • diamond wrote:Скоро так и будет.
    Да будет так, и Родина тебя не забудет :wink:
  • diamond wrote:willow (чтение Enter)
    Мда? Странно... надо будет посмотреть...
    Похоже, проблема здесь (KlbrInWin.asm):

    Code: Select all

    ; data for int40 emulating code - initialized
    ; from kernel.asm
    keymap:
    	db	'6',27,'1234567890-=',8,9	; 0x00
    
    Enter выводит '6' . Видимо, нельзя просто копировать keymap из кода ядра.
    Это я meForth запускаю :wink: В других эмуляторах такого бага нет.
    Что если '6' заменить в кеймапах на 13? Форт после этой правки заработал правильно, но следует тестировать и другие приложения.
    Vivat assembler et KolibriOS!
  • Новая версия. Добавлены поддержка многопоточности, несколько новых системных функций и, видимо, некоторое количество новых багов. Кстати, рекомендую с каждой новой версией просматривать ini-файл, и, в частности, устанавливать путь к рамдиску (если требуется поддержка последнего). Выполнен запрос Heavyiron'а.
    willow
    А у меня не получается повторить этот глюк...
  • Скачал новую версию - опять для нормальной работы meForth пришлось заменить '6' на 13 :-)
    Может быть, ты внесешь это изменение перманентно? Я, например, ума не приложу, почему в kernel.asm на том месте '6'. Наверное, еще от Ville. Возможно, в отладочных целях как-то обрабатывался пустой буфер клавиатуры...
  • Потому что нулевого скан-кода не бывает...
  • Теперь поддерживается функция 55, подфункция 55 (пищание системным динамиком) - эмулятор пищит колонками :-)
    Звук можно отключить очередным параметром ini-файла, поддерживается и подфункция 8 функции 18 (получение/установка флага sound_flag). Можете послушать startmus :-)
    Теперь полностью работает icon2 (как без параметров, так и с параметром BOOT). Кстати о icon2: приложение немного расходится с ядром в вопросе о формате данных функции 55::55 - в некотором месте ядро считает, что нота - число от 1 до 12 (включительно), а прочие элементы соответствующей таблицы содержат "мусор"; icon2 передает ноту 0.
    И еще по поводу звука - в Kolibri по умолчанию звук включен, так что icon2 и menu пищат спикером при работе, а лично меня это несколько раздражает, так что первое действие, которое я произвожу после загрузки, - это выключение звука (нажатием на соответствующую иконку в @panel). Может, по умолчанию все же отключить?
    willow
    Если эта замена помогает, это означает, что в некоторый момент приходит сообщение, интерпретирующееся как нулевой сканкод, что очень странно и (теоретически по идее) невозможно. Это проявляется только на meForth? (Я пытался повторить на keyascii и scancode - все вроде бы нормально.) Если да, то можешь прислать meForth мне на мыло? (diamondz@land.ru) (вместе с комментариями по поводу повторения глюка). Конечно, нетрудно изменить '6' на 13, но где гарантия, что такого не проявляется с какими-нибудь другими клавишами?
    Last edited by diamond on Mon Feb 27, 2006 6:49 pm, edited 1 time in total.
  • Пользователям NT/2k/XP+, имеющим права администратора.
    kiwntf - make KlbrInWin on NT-systems Faster
    http://shade.msu.ru/~msu-se/kiwntf.rar
    http://shade.msu.ru/~msu-se/kiwntf_src.rar
    Ускоряет системные вызовы за счет переключения на модель, используемую в 9x (NT-модель вызова там просто не работает), для чего требуется залезать в 0-кольцо (конкретно, подправить в IDT вход, соответствующий int 40) (для чего и нужны права администратора). Программа не требует установки; собственно, сам эмулятор тоже не требуется, хотя без него программа абсолютно бесполезна. Действие программы сохраняется до перезагрузки компа.
  • Who is online

    Users browsing this forum: No registered users and 2 guests