Sancho45, если я правильно понял, у тебя получилось достать ВМ1 и установить в корвет. Сможешь прогнать 2 теста флагов (долгие, примерно по полчаса) и сфотографировать результат с экрана?
Sancho45, если я правильно понял, у тебя получилось достать ВМ1 и установить в корвет. Сможешь прогнать 2 теста флагов (долгие, примерно по полчаса) и сфотографировать результат с экрана?
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Круто, надеюсь тесты нормально отработают на реале (ну или я доработаю). Для сравнения скриншоты из Emu, он поддерживает ВМ1, но желательно уточнить некоторые флаги.
Тесты печатают CRC32 по флагам или группам флагов для арифметических и логических команд.
Тест 1 - старые команды. F4 - это S Z P CY вместе, надеюсь в них отличий не будет.
Тест 2 - новые команды
Тесты запускаются из доса, но вывод на экран весь свой. По окончанию зацикливаются (на клавиши не реагируют, надо рестартовать).
Интересно, про возможные неточности в эмуляции флагов переполнения и полупереноса я думал (был практически уверен), а вот флаг четности стал неожиданностью.
Sancho45, большое спасибо! Положительный момент в результатах первого теста - основная группа флагов S Z P CY эмулируется правильно. А вот с переполнением и полупереносом ожидаемые расхождения.
Отмечу, что в эмуляторе вектора Virtual Vector (VV) некоторые команды эмулируются точнее, но там только вектор. Интересно, что для некоторых флагов в Emu получился один вариант, в VV - другой, а на реале - третий.
- - - Добавлено - - -
Дополнение про первый тест. Для тех команд флаг полупереноса ВМ1 полностью совпадает с 8080 и для 8080 в Emu этот флаг реализован идеально, т.е. тут достаточно перенести реализацию этого флага в ВМ1.
Было бы все же здорово проверить насчет /RD, это чтение "вообще" или только памяти. Пусть в корвете нет отдельного адресного пространства портов, но генерация сигналов в IN от этого не зависит и если заменить /DEN на IO/M, то сразу станет понятно. Для большей наглядности я бы взял фрагмент типа
В цикле будет 3 чтения памяти и одно чтение порта.Код:lxi h,loop loop: in 0 pchl
Еще бы конечно понять, к переднему фронту /RD на шине адреса уже есть правильный адрес или он выдается позже. Т.е. можно ли сразу начинать чтение памяти с приходом /RD.
Вопросы насчет творческих планов
1. Будешь ли пробовать 5 МГц?
2. Есть ли идеи по задействованию EXM (например для доступа к ГЗУ или еще для чего-то)?
Но если /rd будет только для памяти, как же система распознает IN? Сигнал /DEN работает и на запись и на чтение.
По сигналу /RD нельзя сразу читать память, проц так же выдает машинное слово на ШД и строб CSA(быв. Sync), после выдается /DEN, который совпадает по времени с бывшим DBIN, теперь можно читать.
Позже(на днях) сделаю снимок анализатором.
5МГц уверен на 99,9%,что все будет работать, но надо будет опять городить схему вэйтов для озу. Поэтому воздержусь. За EXM еще не думал.
- - - Добавлено - - -
Точнее момент передачи данных.
15й вывод (бывший F2), который в расширенном режиме IO / /M. В таблице написано, что это вход, но уверен, что это одна из многочисленных ошибок.
Если на ША правильный адрес, то можно. Просто в первом такте нельзя сразу дать эти данные процу (т.к. ШД занята словом состояния). Т.е. читаем в первом или втором такте из памяти в регистр, а процу выдаем только во втором такте.
- - - Добавлено - - -
Когда активны и /RD и /DEN
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)