Вход

Просмотр полной версии : Как процессор 580вм80А адресуется к портам ввод и вывода ?



Alex-DJ
23.05.2024, 18:58
Короче собрал я вот такой стенд, для того что руками команды можно было посмотреть.


808458084680847

Попробовал команды F3 и FB. Светодиод на выходе 16 процессора зажигается при одной команде и гаснет при другой. Попробовал также команды LDA и STA, то есть запись в аккумулятор А содержимого ячейки памяти с адресом таким то и считывание из аккумулятора для записи в ячейку памяти. При этом на выводах 17 и 18 появляются в одном случае единицы, а в другом нули. Хотя вывод DBIN это признак того что шина данных находится в состоянии приёма информации, а а вывод WR это признак того что шина данных находится в состоянии передачи информации. Но у меня почему то сигналы одинаковые на обоих выходах появляются при приёме и при передаче, то есть или на обоих выходах нули или на обоих выходах единицы. Незнаю это так должно быть или нет.

Но самое главное непонятно как работают команды OUT (вывод в порт с таким то адресом) и команда IN (ввод из порта с таким то адресом). Команды эти двух байтовые, Первый байт это сама команда, а второй байт это адрес порта. После выполнения команды, например адрес порта ввожу D3, наблюдаю на шине адреса процессора D3 D3.... Опять вопрос почему этот адрес дублируется?

И вообще вопрос, как проверить работу этих команд ввода и вывода из порта если в качестве порта пока использую восьмиразрядный регистр с защёлкой.

svofski
23.05.2024, 19:05
Чтобы поймать ввод-вывод, нужно ловить слово состояния процессора, которое появляется на шине данных синхронно с SYNC.

Первоисточник на bitsavers: http://bitsavers.trailing-edge.com/components/intel/MCS80/98-153B_Intel_8080_Microcomputer_Systems_Users_Manual _197509.pdf
Страница 2-3 и далее содержат полезную информацию. На странице 2-6 расписано слово состояния процессора. 2-8 и далее временные диаграммы циклов чтения, ввода-вывода итд.

Alex-DJ
23.05.2024, 19:30
Чтобы поймать ввод-вывод, нужно ловить слово состояния процессора, которое появляется на шине данных синхронно с SYNC.

Первоисточник на bitsavers: http://bitsavers.trailing-edge.com/components/intel/MCS80/98-153B_Intel_8080_Microcomputer_Systems_Users_Manual _197509.pdf
Страница 2-3 и далее содержат полезную информацию. На странице 2-6 расписано слово состояния процессора. 2-8 и далее временные диаграммы циклов чтения, ввода-вывода итд.

Хотите сказать что вручную переключателями в пошаговом режиме не получится ?

CodeMaster
23.05.2024, 19:45
Хотите сказать что вручную переключателями в пошаговом режиме не получится ?
Получится, но надо добавить регистры, которые будут фиксировать состояние шины, т.к. в промежутках там может быть всё что угодно. У 8080 - "кишки наружу".

svofski
23.05.2024, 19:46
Хотите сказать что вручную переключателями в пошаговом режиме не получится ?

Может быть и получится, надо смотреть на шину данных когда поднят SYNC. Посмотрите на диаграмму на странице 2-8.

CodeMaster
23.05.2024, 20:09
Может быть и получится

У Микролаб КР580ИК80 получилось и тут должно. Взять его схему, добавить ИР12.

Serg6845
23.05.2024, 20:19
У Микролаб КР580ИК80 получилось и тут должно. Взять его схему, добавить ИР12.

тогда уж сразу ВК28 (38) - толку больше будет.

HardWareMan
23.05.2024, 22:19
тогда уж сразу ВК28 (38) - толку больше будет.
Но если использовать регистр, то можно изолировать стек!

i8088
24.05.2024, 10:38
Но если использовать регистр, то можно изолировать стек!
Можно пояснить?

TomaTLAB
24.05.2024, 10:54
В слове состояния 8080 есть сигнал "STACK", если его выделить и использовать для адресации, то можно вынести стек в отдельное адресное пространство.
Таким образом, 8080 может адресовать 256 портов, 64к памяти и отдельно еще 64к стека.

i8088
24.05.2024, 11:12
В слове состояния 8080 есть сигнал "STACK", если его выделить и использовать для адресации, то можно вынести стек в отдельное адресное пространство.
Таким образом, 8080 может адресовать 256 портов, 64к памяти и отдельно еще 64к стека
Спасибо! Тогда только будет затруднен доступ к стеку как к памяти, те без PUSH/POP.
Если правильно помню у 4040 и 8008 как раз аппаратный стек и был, небольшой.

Serg6845
24.05.2024, 11:32
Спасибо! Тогда только будет затруднен доступ к стеку как к памяти, те без PUSH/POP.

именно. а некоторые программы в таком режиме работать не будут.


Если правильно помню у 4040 и 8008 как раз аппаратный стек и был, небольшой.

теперь понятно откуда микрочип эту идею позаимствовал :)

HardWareMan
24.05.2024, 20:26
Спасибо! Тогда только будет затруднен доступ к стеку как к памяти, те без PUSH/POP.
Его можно использовать с умом. Например, активировать по состоянию регистра ввода-вывода, таким образом имея дополнительные 64К с последовательным доступом. При этом у i8080 отличный набор команд для управления регистровой парой SP + доступ будет 2 байта данных за 1 байт команды.