У меня вопрос к автору эмулятора B2M. Т.к для эмулятора B2M нет отдельной темы. А зря, т.к эмулятор B2M очень хороший и используется по всему миру, причём для всех бытовых компьютеров, а документации к нему нет. Поэтому единственный способ что-то узнать про эмулятор, - это спросить у автора. А так как вопрос касается ИРИШИ, то это будет интересно для пользователей ИРИШИ, т.к даже имея реальную рабочую ИРИШУ, программы удобнее писать в эмуляторе. Например, мне хотелось бы расширить в эмуляторе ОЗУ на плате графического адаптера. А как это сделать? - Только спросить у автора эмулятора B2M.
После того, как я кое-что узнал о составлении конфиг-файлов для эмулятора в теме 'РК86 на Z80', я решил заглянуть в конфиг-файл ИРИШИ. И ничего не понял. Причём я смотрел конфиг-файл для базовой ИРИШИ, т.е без НГМД.
Я понял, что в конфиг базовой ИРИШИ добавили НГМД, кучу несуществующих портов и море ОЗУ. Посмотрев конфиг-файл ДИАЛОГА я понял, что именно надо удалять. Но не понял, что надо добавлять, чтобы получить базовую реальную ИРИШУ, без фантазий. В частности, в ИРИШЕ в карте 1 в сегменте 0 не читается продолжение ROM-BIOS, как в ДИАЛОГЕ, а читается базовое ОЗУ из платы граф.адаптера.
Хотя трудно судить, не имея информации об устройстве конфига, у меня возникло предположение, что карты памяти ИРИШИ обслуживаются неверно. Точнее реализована только карта 2, в которой работают резидентные программы. А карты 1 и 3 проигнорированы. Точнее, проигнорирована их работа, как в базовой ИРИШЕ. И вместо этого сделано что-то иное. Вообще, прошивка карты памяти может меняться, т.е она должна как-то присутствовать в конфиг-файле, а её здесь нет.
Похоже, что 64К дополнительного ОЗУ, читаемого в окнах 4000...7FFF и C000...FFFF в картах памяти 1 и 3, в эмуляторе ДИАЛОГА нет, а в ИРИШЕ здесь что-то другое.
Там в секции 'mm' подставлены какие-то 'win1', 'win2', 'win3', 'win4', что указывает на ОЗУ, из каких-то неизвестных науке периферийных плат, управляемых портами 24...27H, которых в базовой ИРИШЕ нет. Предположительно это ОЗУ на плате НГМД, т.к про другие периферийные платы содержащие доп.ОЗУ мне не известно.
На моей базовой ИРИШЕ стоит стандартное дополнительное ОЗУ, которое не нуждается в платах КНГМД и управлении несуществующими портами. Не могли бы Вы сделать мне конфиг-файл для стандартной ИРИШИ, т.е именно того, что у меня и у всех пользователей ИРИШИ есть в реальности, без всяких мифических устройств. Мне нужен эмулятор полностью соответствующий реальности, чтобы использовать эмулятор B2M для первичной проверки программ. Т.е нужна базовая ИРИША с ОЗУ в 128К, т.е только то, что поддерживается стандартным диспетчером памяти в картах 0...3.
Я так понимаю, что надо удалить порты 24...39 и непонятно откуда взявшийся мегабайт памяти 'mem2'. И ввести 2 блока памяти по 32К с 2-мя frame в окнах 4000...7FFF и C000...FFFF, включаемых в картах памяти соответственно 1 и 3.
К сожалению, автор эмулятора B2M, не прислушался к пожеланиям пользователей и не исправил регистры небуквенных клавиш (как я просил в теме ДИАЛОГА). Чтобы точка и запятая выводились, как на всех клавиатурах в мире, т.е по нажатию одной клавиши. А не по нажатию клавиши вместе с SHIFT-ом, что дико неудобно. Это дико непривычно и вызывает сильные отрицательные эмоции при пользовании, потому что всякий раз вводишь по привычке и возникает ошибка !!!
По счастью, при появлении новой версии эмулятора B2M от 28 декабря, я не поленился заглянуть в конфиг-файл и обнаружил, что исправление кодов курсорных клавиш сделано путём замены в конфиге, а не в самом коде эмулятора. А регистры небуквенных клавиш, так и не были исправлены.
В конфиге нового дистрибутива в секции 'kbd' обнаружилась следующаяся строка
vk.xlat[0][25-28]="1A1C191D"
Непонятно как работает эта строка, т.к на клавиши, вырабатывающие эти коды она не влияет.
Тогда я попробовал вставить следующие строки:
vk.xlat[0][3C]="2C"
vk.xlat[0][2C]="3C"
vk.xlat[0][3E]="2E"
vk.xlat[0][2E]="3E"
vk.xlat[0][3F]="2F"
vk.xlat[0][2F]="3F"
И, О чудо ! Символы точка, запятая и слэш вернулись в нормальный регистр. Увы, теперь для этих клавиш перестала работать клавиша <SHIFT>. Однако удалось обнаружить, что получить символы верхнего регистра этих клавиш можно нажимая клавишу <Control>, вместо <SHIFT>. Это уже спасение эмулятора ИРИШИ (иначе им просто невозможно пользоваться, свои нервы дороже).
Однако, учтите, что команда конфига VK.XLAT есть только в последней версии эмулятора B2M (от 28 декабря). С предыдущей версией эмулятора B2M (от 5 апреля) данные строки замены кодов вообще не работают. Надеюсь, что в следующей версии автор эмулятора B2M, наконец, исправит регистры небуквенных клавиш, т.к пользоваться клавишей <Control> вместо <SHIFT> - не смешно.
Однако ещё большая проблема возникает с вводом текстов русскими буквами. В ОРИОНЕ, есть жёстко фиксированная системная переменная RUSLAT (F3E5). Эмулятор ОРИОНА может "посмотреть" в эту ячейку и в соответствии с ней возвращать код (или латинских букв по раскладке QWERTY или русских букв по раскладке ЙЦУКЕН). А вот на ИРИШЕ такой стандартной ячейки нет. В каждой программе эта ячейка своя. Поэтому эмулятор не может знать какой код возвращать по нажатию на буквенную клавишу. Из-за этого в эмуляторе B2M русские буквы находятся на тех же клавишах, что и созвучные латинские, т.е так, как это в клавиатуре РК86 (хотя там раскладка ЙЦУКЕН).
В программах, рассчитанных специально для эмулятора, я могу программно вернуть русские клавиши в соответствии с подписями (я это делал в своём эмуляторе). Это делается простейшим перекодированием типа команды XLAT 8086-го. Но для этого надо иметь команду идентификации эмулятора. Выполнив её, программа узнаёт прогоняется она в эмуляторе на IBM PC, или на реальной ИРИШЕ. К сожалению, похоже, что в эмуляторе B2M нет команд эмулятора. Поэтому все программы придётся делать в двух версиях - для эмулятора и для реала.