User Tag List

Показано с 1 по 10 из 849

Тема: Пожелания и планы по эмулятору Башкирия-2М

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11

    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Эмуляция ОРИОНА на Z80 с дисководом

    Помещаю это сообщение здесь, т.к оно не в формате темы "F.A.Q. по эмулятору B2M".

    У меня нет устройств с CP/M с блоками более 2К. А возникло желание посмотреть на CP/M с блоками в 16К. Как это сделать?

    Простой выход, - воспользоваться эмулятором с эмуляцией НГМД и CP/M такой, где можно изменить формат диска. Для обычного СПЕЦИАЛИСТА эмулятор не поддерживает НГМД, для РК86 с РК-НГМД - вообще нет эмулятора. Остаётся только ОРИОН.

    Для начала хочу выразить панегирик B2M, за его эмулятор. Эмуляция дисковода действительно удобна при использовании старого ПО. Хотя в моём случае меня больше устроило бы наличие в эмуляторе двух функций - запись и чтение сектора, доступных из программ КР580/Z80.

    Увы, в дистрибутив эмулятора не включён конфиг для ОРИОНА с голым Z80.

    Мне пришлось потратить 2 дня, чтобы разобраться почему в эмуляторе B2M с поддержкой НГМД антикварные CP/M грузятся и работают, а мои DOS не работают. Мой загрузчик для Z80 вообще не грузит, но загрузчик MBOOT$ (по цифре 4) грузит. Но... только антикварные ДОС.

    После долгого электро-траха понял, что грузятся только ДОС, что написаны для КР580. Тогда стало ясно, где "собака зарыта", что дело в Z80.

    Причина оказалась в конфиг-файле. Оказывается для перевода ОРИОНА на Z80 недостаточно заменить слово К580ВМ80А на слово Z80, как это делается в конфиге для РК86. После долгих мучений удалось выяснить, что чтобы Z80 работал на ОРИОНЕ надо в секцию CPU включить строки:

    port.maptomem=0
    port[F8]=vid.mode
    port[F9]=mm.page
    port[FA]=vid.page

    Частично помогло, но не целиком. Попытки загрузиться моим Z80 загрузчиком НГМД не удались. Удачно, что для всех своих ДОС я всегда делал не только версии загружаемые с НГМД, но и ДОС стартующие, как файлы ORDOS из ROM-диска. И вот ДОС стартующие $-файлами заработали с таким конфигом без проблем. Загрузчик MBOOT$ (п.4) после исправления конфига тоже стал наконец грузить версии DOS на Z80.

    Дело в загрузчике, - догадался Штирлиц... Стало ясно что проблема в моём Z80-загрузчике, - он не грузит те CP/M, что грузятся загрузчиком MBOOT$ от error404. Загрузчик 1990 года для КР580 тоже заработал. А загрузчик на Z80, которым я пользовался с 1992, так и не заработал. Что предположительно свидельствует не о 100% эмуляции архитектуры.

    Всё-же наконец стало можно странслировать CP/M для НГМД с блоками в 16К и проверить их в эмуляторе. Это не проблема (замена 3 цифр).

    Для начала я решил инсталлировать на дискеты десяток версий ДОС, чтобы получить загрузочные диски. Это получилось. Но снова с глюками. Не могу об этом писать, пока не разобрался в сути... В итоге до CP/M с блоками в 16К ещё даже не добрался.

    Возник вопрос. В каком объёме эмулятор B2M поддерживает КНГМД на ВГ93? Я было собрался понаделать ODI-образов дискет разного формата, воспользовавшись форматёром UNIFOR.COM. В частности HD-формата 1640 кб и 1800 кб, для которых у меня есть DOS и реальные дискеты (но не TD0). Но, облом. При запуске форматёра (причём любого) происходит тупой завис. Не знаю также как получать ODI-файлы из реальных дискет.

    С другой стороны, я не могу перевести и TD0 файлы реальных дискет в ODI-формат (SteinBlume не помогает, не берёт мои TD0).

    Никто не знает, где можно взять программу для конверсии TD0 в любой другой формат с доступом к файлам?

    Таким образом остаётся только создавать ODI-файлы формата отличного от 800К вручную, набивая коды с клавиатуры байт за байтом. Но тут возникает ряд вопросов.

    Непонятно чему служит строка.
    vdpb="2800040F0084017F00C00020000400"

    Из интереса закомметировал эту строку. И вдруг...

    Ничего не изменилось! По крайней мере, на первый взгляд. Система грузится, файлы копируются. Это значит, что в эмуляторе B2M можно использовать и другие ДОС (у которых ИНФО-блок в BOOT-секторе другой).

    Нетрудно догадаться, что эта строка отображает БПД, часть ИНФО-блока считываемого в подпрограмме NASTR, что вызывается из SELDSK CP/M-BIOS и в грамотных CP/M из BDOS-функции RESET.

    Вопрос: Сколько максимум секторов в треке и треков поддерживает эмулятор B2M, эмулируя БИС ВГ93?

    Т.к регистр сектора однобайтовый, то д.быть - не менее 256. Аналогично, относительно числа треков. Без всякой связи с реальным дисководом.

    В таком случае можно иметь 256 кб в треке на 256 треках, что даёт размер диска в 64 мб. Т.е, если ограничений в эмуляторе B2M нет (реальные ограничения в реальном ВГ93 не волнуют, речь только об эмуляторе B2M), то в этом эмуляторе можно реально проверить быстродействие CP/M с реальным винчестером и дисками большого объёма.

    Вопрос: Поддерживает ли эмулятор B2M дискеты любого формата? Или не стоит тратить своё время пытаясь это использовать. В частности, хочу сделать диск размером в 32 мб и посмотреть на скорость CP/M.

    Кстати, быстродействие эмулятора при работе с "дискетами" (даже при Clock 2.5 МГЦ) примерно в 4-8 раз больше, чем скорость обмена реального КНГМД на ВГ93. Кроме того, скорость Z80 можно поставить 10 МГЦ (тут ограничение только в скорости IBM PC, т.к эмулятор ресурсоёмкий и на медленной PC может не "выжать" 10 МГЦ).

    Совет пользователям. Не пытайтесь запустить сразу две копии эмулятора в дисководном варианте. Т.к тогда на втором эмуляторе будет ошибка, т.к первый эмулятор захватывает ODI-файл образа диска в монопольное пользование.

    Стоит помнить, что только HD-версии ДОС могут работать в формате более 5 секторов в треке и более 80 треков, т.е более 800К. В версиях CP/M ОРИОНА из 1991 года размер Alloc Table резервирован только для дискет размером до 800К.

    Спойлер только для B2M (другим не читать). Это не критика, а заметки о том, что хотелось бы иметь исправленным в будущих версиях и вопросы.

    Скрытый текст


    Никакой диагностики, не выдаётся, если не найден файл загружаемый при обработке файла конфигурации (ПЗУ, ROM-диск, карта клавиатуры и образы дисков), а вместо этого происходит тупой завис.

    Очень неудобно не знать какой диск вставлен. Невозможно узнать какой диск уже стоит в данном приводе. В чужих эмуляторах имя "вставленного" сейчас диска, по крайней мере в меню смены диска, отображается..

    При открытии файла окно просмотра слишком маленькое и не раздвигается как окно, что неудобно при большом числе файлов. Удобнее иметь большое вертикальное окно прокрутки.

    Что делает строка vdpb.boot="Orion\DISK_001.ODI"

    По логике с этого диска д.быть загрузка, но загрузка происходит с диска указанного image[0].file. И даже когда image[?] нет, все-равно.

    Как "шариться" по всем банкам в отладчике? Можно вручную записать что-то в упр.регистр F900, чтобы переключить банку. Но при попытке нажать F5 в другой банке произойдёт улёт.

    И также, как в эмуляции ИРИШИ, раздражает раскладка клавиатуры. Такое впечатление, что до меня никто эмулятором B2M для эмуляции ОРИОНА не пользовался (или мучился, но стеснялся пожаловаться). Клавиши '^~' и ':*' поменяны местами. Это ни как на PC, ни как в РК86-клавиатуре. Очевидно, для исправления достаточно где-то поменять 2 цифры, чтобы всё стало как в РК86. Но где и что?

    Как устроена и используется LAYOUT.KBD. Если её загрузку в конфиге закомментировать, то эмулятор перестаёт реагировать на клавиатуру, отчего использовать vk.xlat[0/1][hh]="HH" для исправления раскладки, ни с ней, ни без неё не получается.

    Что делает строка RST(7) в конфиге ОРИОНА?

    Насчёт строки 'port.maptomem=0'. В ОРИОНЕ используется и OUT XY и STA XYXY, т.е к системным регистрам одни программы обращаются по STA, другие по OUT. Причём при Z80 с одними адресами OUT должен попадать в память, с другими игнорироваться. Какая строка maptomem должна быть?

    Почему в файлах из дистрибутива
    Orion-128 Z80-Card-II.cfg
    Orion-128 Z80 HDD.cfg

    такой странный блок 'mm'?

    Код:
    mm : MemMap {
     map[0][0000-3FFF]=mem1.frame[1]
     map[0][4000-EFFF]=mem1.frame[0][4000]
     map[0][F000-F3FF]=mem1[F000]
     map[0][F400-F4FF]=sys.data
     map[0][F500-F5FF]=app1.data
     map[0][F700-F7FF]=extmap
     map[0][F800-F8FF].wo=vid.mode
     map[0][F900-F9FF].wo=mem1.frame[0].page
     map[0][FA00-FAFF].wo=vid.page
     map[0][F800-FFFF].ro=bios[0000]
    
     map[1][0000-3FFF]=mem1.frame[1]
     map[1][4000-FFFF]=mem1.frame[0][4000]
    
     map[2][0000-EFFF]=mem1.frame[0]
     map[2][F000-F3FF]=mem1[F000]
     map[2][F400-F4FF]=sys.data
     map[2][F500-F5FF]=app1.data
     map[2][F700-F7FF]=extmap
     map[2][F800-F8FF].wo=vid.mode
     map[2][F900-F9FF].wo=mem1.frame[0].page
     map[2][FA00-FAFF].wo=vid.page
     map[2][F800-FFFF].ro=bios[0000]
    
     map[3][0000-FFFF]=mem1.frame[0]
    }
    Получается, что во всех 4-х банках разные способы доступа к памяти, а ведь в реальном ОРИОНЕ все банки одинаковые. Можно предположить, что это какая-то отладочная версия конфига. Или же тут какая-то другая непонятная конструкция и map[x] не означает выбор текущей банки портом F9, а что-то иное настроенное на конкретную программу
    [свернуть]
    Последний раз редактировалось barsik; 16.03.2017 в 04:11.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 1034
    Последнее: 29.10.2021, 07:15
  2. Жалобы/пожелания по работе форума
    от Conan в разделе Форум
    Ответов: 6289
    Последнее: 14.03.2021, 00:19
  3. пожелания создателям эмуляторов
    от проф в разделе Эмуляторы
    Ответов: 24
    Последнее: 09.02.2007, 01:31
  4. Пожелания по сервисам форума
    от andrews в разделе Форум
    Ответов: 10
    Последнее: 14.08.2006, 13:47

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •