Вот кстати, вопрос по эмулятору, существенный. Как в режиме эмуляции Вектора 06Ц с квазидиском - сохранить квазидиск в файл, и потом из файла его монтировать с определенными параметрами ? Есть ли такая опция ?
Вот кстати, вопрос по эмулятору, существенный. Как в режиме эмуляции Вектора 06Ц с квазидиском - сохранить квазидиск в файл, и потом из файла его монтировать с определенными параметрами ? Есть ли такая опция ?
Сейчас в коллекции:
Вектор 06Ц.01(Минск, Волжский, Астрахань, Киров) x4, Вектор 06Ц.02(Кишенев), Электроника 0511 УКНЦ (СЭМЗ) X2, Электроника 0511 УКНЦ (КВАНТ), Агат 7, Агат 9, Поиск-1.03 (VGA), Поиск-1.03 (CGA сток), Электроника БК-0011(10,11M) [3IN1], Электроника БК-0010-01, Львов ПЛ-01, Корвет ПК8010, Партнер 01.01, Спектр-001, БАЙТ(БПО_СВТ), Волна 48, Ленинград 48, Веста ИК-30, Веста ИК-31, БПК Дельта-Микро, Компакт 256(новодел),
и ... AMD K6-300, Pentium 200 mmx, 386SX-16 ...
electroscat(26.05.2023)
Здравствуй, b2m, есть вопрос по эмуляции ПК-6128ц, в честности по эмуляции памяти. Изучая схему и документацию, можно понять, что переключение банков памяти на ПК-6128ц должно выполнятся так, вот все возможные комбинации:
Параметр в OUT 0Eh (4-1 биты и/или 8-5 биты)
Адреса 0000-7FFFh Адреса 8000-FFFFh 0 (0000)
Банк 0
Банк 1
1 (0001) Банк 0 Банк 0 2 (0010) Банк 0
Банк 3
3 (0011) Банк 0
Банк 2
4 (0100) Банк 1 Банк 1 5 (0101) Банк 1 Банк 0 6 (0110) Банк 1 Банк 3 7 (0111) Банк 1 Банк 2 8 (1000) Банк 2
Банк 1
9 (1001) Банк 2 Банк 0 A (1010) Банк 2 Банк 3 B (1011) Банк 2 Банк 2 C (1100) Банк 3
Банк 1
D (1101) Банк 3 Банк 0 E (1110) Банк 3 Банк 3 F (1111) Банк 3 Банк 2
Выделенное красным явно указано в документации, как "наиболее рациональные значения", остальное можно понять из схемы. Биты 4-1 определяют подключённый для чтения банк, биты 8-5 -- банк для записи.
"Банк 0" = 0000h-7FFFh, "Банк 1" = 8000h-FFFFh, "Банк 2" = 10000h-17FFFh, "Банк 3" = 18000h-1FFFFh.
В ходе экспериментов оказалось, что в эмуляторе не совсем правильно переключается память, например, при отправке кода 011h память распределяется точно также, как и при отправке 000h, т.е. "Банк 0, Банк 1" вместо ожидаемого подключения "Банк 0, Банк 0".
Пример кода для теста
Код:ORG 0000h L_START: DI MVI A, 033h ; загр. конфигурацию памяти L_BM: OUT 00Eh ; отправляем... ; 33h (Банк 0 - Банк 2) чтение и запись ; 22h (Банк 0 - Банк 3) ; 11h (Банк 0 - Банк 0) ; 00h (Банк 0 - Банк 1) SUI 011h ; следующее значение -- тут можно поставить точку останова и проверить память. JP L_BM ; если < 80h JMP L_START END[свернуть]
Если что, монитор тестов для 6128 в emu нормально отрабатывал тест озу, а в VV спотыкался.
Полного списка вариантов я не сохранил, но я там написал, что в тесте используются еще как минимум 55h и 66h.
Improver(12.07.2023)
Какие значения пишет в порт 0Eh тест озу:
Преамбула до банок (убрал повторы и отсортировал) - 00, 02 ,03, 20h, 22h, 23h, 30h, 32h, 33h
Сам тест когда банки:
00
Банк1 - чередует 22/00h
02, 33h
Банк2 - чередует 00h/33h
22h
Банк3 - чередует 00h/22h
20h, 0, 55h
Банк0 - чередует 66h/55h
22h
Improver(12.07.2023)
Я бы тут немного уточнил:
-----
00
Банк1 - чередует 22/00h -- экран в Банке 3 (обновляется при конфигурации 22h), программа в Банке 0
02, 33h
Банк2 - чередует 00h/33h -- экран в Банке 1, программа в Банке 0
22h
Банк3 - чередует 00h/22h -- экран в Банке 1, программа в Банке 0
20h, 0, 55h -- тут заметна небольшая задержка, т.к. переливаются данные
Банк0 - чередует 66h/55h -- экран снова в Банке 3, программа в Банке 1
22h
-----
Вот на последнем этапе в эмуляторе на самом деле тестируется Банк 1 вместо нулевого, как я понял. По крайней мере, короткий тест выше показывает, что это так -- это легко заметить, если занести метки в память, по которым можно отследить подключённый банк.
В emu можно посмотреть куда реально пишет/откуда читает тест в адресном пространстве mem1
Банк1 - mem1 8E00-FFFF
Банк2 - mem1 10700-17FFF
Банк3 - mem1 18100-1FFFF
Банк0 - mem1 8100-FFFF
Действительно похоже с банком 0 ошибка, насколько понимаю должен писать/читать mem1 0100-7FFF
Improver(12.07.2023)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)