Ты и твой SPECTRUM
Наверняка многим из читателей хотелось бы поиграть со своим SPECCY по-другому. В этой статье я расскажу вам, что и как можно делать с вашим компьютером.
А теперь коротко — что находится на шине:
(Черта над сигналом означает, что на нём активен низкий уровень.)
********************************
*№ * верх * низ *
********************************
*1. * НЕ ЗАНЯТО * A11 *
* * * *
*2. * A10 * A9 *
* * * ------ *
*3. * A8 * BUSACK *
* * ---- * ----- *
*4. * RFSH * ROMCS *
* * -- * *
*5. * M1 * A4 *
* * * *
*6. * -12V(ПРИМ.) * A5 *
* * * *
*7. * +12V(ПРИМ.) * A6 *
* * ---- * *
*8. * WAIT * A7 *
* * * ----- *
*9. * -5V * RESET *
* * -- * ----- *
*10.* WR * BUSRQ *
* * -- * *
*11.* RD * U(ПРИМ.) *
* * ---- * *
*12.* IORQ * V(ПРИМ.) *
* * ---- * *
*13.* MREQ * Y(ПРИМ.) *
* * ---- * *
*14.* HALT * VIDEO(ПРИМ.*
* * --- * *
*15.* NMI * ЗЕМЛЯ *
* * --- * ----- *
*16.* INT * IORQE *
* * * *
*17.* D4 * A3 *
* * * *
*18.* D3 * A2 *
* * * *
*19.* D5 * A1 *
* * * *
*20.* D6 * A0 *
* * * *
*21.* D2 * CK *
* * * *
*22.* D1 * ЗЕМЛЯ *
* * * *
*23.* D0 * ЗЕМЛЯ
ЩЕЛЬ
*24.* НЕ ЗАНЯТО * +9V(ПРИМ.)*
* * * *
*25.* D7 * +5V *
* * * *
*26.* A13 * A12 *
* * * *
*27.* A15 * A14 *
*******************************
Сигналы с пометкой «ПРИМ.» могут отсутствовать в некоторых моделях — лучше проверить.
Это описание нужно переписать и повесить над кроватью в комнате.
А теперь — описание выводов Z80 на краевом разъёме. Возможно, оно слишком сложное, но проще объяснить я не сумел.
A0–A15 — адресная шина.
По адресной шине процессор передаёт адрес ячейки памяти или номер порта. Следует помнить, что номер порта передаётся по восьми младшим линиям адресной шины.
D0–D7 — шина данных процессора. По этой шине процессор отправляет данные в память или порты либо получает их оттуда.
M1 — сигнал, обозначающий цикл выборки команды процессором Z80.
Каждый цикл выполнения команды начинается с выборки команды из памяти. Во время цикла выборки формируется сигнал:
M1 = 0
Это отличает данный цикл от других циклов процессора. В тактах T2 и T3 этого цикла по адресной шине передаётся содержимое счётчика команд PC, после чего появляются сигналы:
MREQ = 0
RD = 0
Они подключают память к шине данных. Процессор считывает данные с шины данных при переходе от T2 к T3. В тактах T3 и T4 выбранная команда декодируется и, если для её выполнения не требуются дополнительные обращения к памяти или порту, выполняется. В эти же такты происходит обновление динамической памяти: формируются сигналы
RFSH = 0
MREQ = 0
а на биты 0–6 адресной шины подаётся содержимое регистра R.
При выборке следующих байтов команды или во время её выполнения происходит чтение данных из памяти либо запись данных в память.
Циклы чтения и записи состоят из трёх тактовых интервалов. В такте T1 цикла чтения процессор формирует сигналы:
A0–A15 = адрес памяти
MREQ = 0
RD = 0
В такте T2 состояния выходов не изменяются. В первой половине такта T3 процессор считывает данные с шины данных, а во второй половине этого такта перестаёт формировать сигналы:
MREQ и RD
В такте T1 цикла записи процессор формирует сигналы:
A0–A15 = адрес памяти
MREQ = 0
D0–D7 = выходные данные
Во второй половине такта T2 процессор формирует сигнал:
WR = 0
В такте T3 процессор перестаёт формировать сигналы:
MREQ и WR
Цикл выполнения команды ввода-вывода отличается от циклов чтения и записи тем, что вместо сигнала
MREQ
формируется сигнал
IORQ
а между тактами T2 и T3 автоматически вставляется цикл ожидания.
MREQ — выходной сигнал, обозначающий, что по адресной шине передаётся адрес памяти.
IORQ — выходной сигнал, обозначающий, что по младшим линиям адресной шины передаётся адрес порта.
RD (Read) — выходной сигнал, обозначающий чтение из памяти или порта.
WR (Write) — выходной сигнал, обозначающий запись в память или порт.
BUSRQ — входной сигнал запроса на освобождение шин процессором.
Если памятью пользуется не только процессор, то в момент, когда другое устройство хочет что-либо прочитать из памяти, оно должно получить «свободную» шину. Для этого, когда устройству нужно выполнить какие-либо операции с памятью, оно должно сформировать сигнал:
BUSRQ = 0
Процессор считывает этот вход в последнем такте цикла выполнения команды. Если…
При BUSRQ = 0 процессор переводит шину в состояние высокого импеданса и генерирует сигнал BUSAK = 0. Состояние входа BUSRQ проверяется на каждом такте. Когда на нём снова появляется 1, процессор сбрасывает сигнал подтверждения и возобновляет цикл команд.
На этом пока всё. Продолжение — во второй части...
Mały
Поделитесь вашим мнением о статье