Изменил конфиг-файл согласно информации от B2M и получил в эмуляторе B2M в области E000...EFFF ПЗУ с кодом RK-DOS, а в области 8400...BFFF - ОЗУ. Однако для этого мне пришлось удалить таймер ВИ53. Его перемещение на F000 с помощью строки
map[0][F000-F7FF]=tim.data
не помогло. Пришлось удалить целиком следующие строки
Код:
tim : K580wi53 {
clock[0].rate=1/1
clock[1].rate=1/1
clock[2]=tim.out[1]
~gate[0]=tim.out[2]
gate[1].value=1
gate[2].value=1
}
Если этого не сделать, то по адресу A002 байт не изменяется. Предположительно это не вина конфиг-файла, а дефект самого эмулятора. Так что ради ОЗУ в области 8400 пришлось отказаться от таймера ВИ53.
B2M, Вы предложили использовать строку
map[0][8400-BFFF]=mem8400
Но я по аналогии с другим участком ОЗУ использовал следующую строку
map[0][8400-BFFF]=mem8400[0000]
Предполагаю, что цифра в квадратных скобках указывает номер конфигурации, в котором этот кусок ОЗУ "виден" в адресном пространстве. В связи с этим домыслом появились следующие вопросы.
Как задать управляющий порт (адрес в ОЗУ) и управляющие биты в этом порту, которые задают конфигурацию памяти?
В частности, мне надо, чтобы бит D0 порта C дополнительного ППА D14 (который у меня не по адресу A000, т.к там ОЗУ) управлял страницей ОЗУ в 15 Кб, включаемой в окне 8400...BFFF.
Можно ли программно управлять фонтом в ПЗУ знакогенератора?
Мне надо чтобы бит D7 этого же порта C этого же второго ППА управлял тем какой фонт является текущим. При 0 - основной (стандартный) фонт РК86, а при 1 - альтернативный фонт с инверсией и нормальной псевдографикой. Предполагаю, что это тоже можно сделать без модификации самого эмулятора, лишь за счёт изменения конфиг-файла.
Не подскажете что-нибудь на этот счёт?
Сообщение от
Vladimir_S
Сообщение от
barsik
Нет ли сбоев при программном переключении скорости?
С чего бы вдруг сбои появятся?
В первых платах ОРИОН 'СУПЕР-ТУРБО-2' (С.Караваев, Ташкент, 1993) тоже было программное переключение клока (2.5/5/10 МГЦ). И наблюдались сбои при переключениях. Сбои возможны если переключение происходит не по тому фронту сигналов из Z80. Наилучший результат даёт стробирование сигналом /MREQ.
Не понял почему в схеме Вашего компьютера используются сигналы /WR и /RD, а не сигналы /MEMR /MEMW (это /RD и /WR объединённые на ЛЛ1 с сигналом /MREQ). Из-за этого в программах, где для доступа к портам используются сигналы IN/OUT, будет портится ОЗУ и произойдёт улёт. А если использовать /MEMR и /MEMW, то команды с портами вреда не принесут (хотя например, клавиатура и РК-КНГМД работать не будут).
Насчёт двух половинок ПЗУ в области выше 8000 понял. Но если ПЗУ включается выше 8000, то это ПЗУ из-за совпадения с адресами РК-портов может использоваться лишь частично.
А отчего ОЗУ в области 8400...BFFF сделано из двух кусков, оставляя 1 кб для адресации доп.ППА A000? Ведь это ППА из всех программ РК86 использует лишь одна единственная программа - прошиватель УФ-ПЗУ, изменить адреса в которой - это дело нескольких минут труда. Гораздо важнее иметь 15 Кб сплошного ОЗУ. В частности, CP/М имеет размер 10 кб и на два куска она не делится (без особых коррекций в коде).
Раз у Вас есть ОЗУ 8400, то сюда было бы удобно странслировать проверочную версию RK-DOS для процессора Z80. Завтра выложу проверочную версию RK-DOS для Z80 на адреса 9000...9FFF.
Согласно информации B2M настроил конфиг-файл для предложенного мной ROM-BIOS с 110 свободными ячейками. И оказалось, что эмулятор B2M с этим ROM-BIOS и с магнитофоном работает.
Чтобы убедиться в этом надо изменить в конфиг-файле адреса входов в п/п-ммы RDBYTE и WRBYTE. Предположительно, этот ROM-BIOS вполне исправен.
Код:
.
cas : tape-recorder {
biproc[FB88-FC87]=rk
boproc[FC30-FC87]=rk
}