Точный ответ на это вопрос может дать разбор формирования OE для ВА86. Но можно относится как к вопросу веры - я не верю, что это зависит от производителя ВМ80.
Интересно, что выдал бы z80, и это еще может зависеть от конкретного варианта установки.
Не, формирование ОЕ для ВА86 тут ни при чём. У 06Ц логика отключения ВА86 очень проста, всего два условия. Первое Чтение из порта ЧТВВ. Второе выборка адреса (порта) на шине адреса от 00 до 0F.
Соответственно, при чтении из портов с адресом ниже 10h ВА86 отрубает шину данных от проца, и на ней остаются только D27, D29, D30, причём без подтяжки шины к питанию. А т.к. в интервале адресов портов от 0C до 0F ничего на шине нет, то там сплошное Z-состояние. Вот проц сам себя и читает.
Скорее всего эти прочитанные 42 зависят от схемного решения входного/выходного каскада шины данных процессора. И если в этот каскад производителями вносились хоть какие-то изменения, то и проц будет считывать другие значения...
Но это моё ИМХО соответственно.
Пока не вижу противоречия, надо еще с условиями отключения ВА86 от проца в .02 разобраться.
- - - Добавлено - - -
Как указал b2m, это четко слово состояния для цикла INPUT:
D0 (INTA) - 0
D1 (/WO) - 1
D2 (STACK) - 0
D3 (HLTA) - 0
D4 (OUT) - 0
D5 (M1) - 0
D6 (INP) - 1
D7 (MEMR) - 0
01000010b=42h
А вот интересно, с ВМ1 на борту, результат будет таким-же?
А с 10h и далее что будет читаться, FF ?
Здесь можно скачать актуальные версии Virtual Vector (VV)
Сделал вчера такую проверялку, но не стал выкладывать.
x-code, заводи cmake
https://github.com/svofski/vector06sdl
Пока только необходимый минимум для полноценной игры в River Raid на RPi3. На полных парах кушает меньше 40% одного ядра.
Больше игр нет
Опенсорсный эмулятор на c++, неужели я дожил до этого. svofski - респект! А под win его можно собрать?
Ну и хочу завершить тему с 42 и FF. Мое предположение, что FF в .02 связан с изменением логики формирования OE у ВА86 похоже было неверным. Внимательно посмотрел Вектор-USER 4 с прототипом джойстика-с. И бегло посмотрел этот фрагмент в .02. FF при чтении портов 0C-0F в .02 идет от джойстиков (только непонятно, откуда единицы и в битах D4-D5, висящих в воздухе, о чем упоминал KTSerg). Если в 06Ц реализовать схему из ВU4 (только там вроде биты контактов перепутаны), то из 0С-0F тоже пойдет FF. И, насколько я понял, при выборке джойстиков по схеме в вектор-user (и в .02) 0C=0E и 0D=0F.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)