Author |
Message |
aav8
Maniac
Joined: 05 Nov 2008 19:47 Posts: 287 Location: 81.28.208.238
|
Вполне возможно.
У меня уже вкралось такое подозрение.
Скажите пж-та коды этих 4-х операций.
|
15 Dec 2012 03:47 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Вот насчет прерываний - запилили меня сомнения, но откуда не вспомню никак:
если по прерыванию получаем вектор RST N, то DI выполняется чисто аппаратно само,
а если CALL ADDR, то DI - должно быть первым кодом подпрограммы обслуживания
прерывания.
Это так, или я что-то подзабыл?
Дословно информация выглядит вот так:
То есть, получается что RST N просто из текста программы само делает DI?
А в перываниии - это как бы дублируется ещё и механизмом прерывания
самого процессора?
_________________ iLavr
|
17 Dec 2012 22:52 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
2_aav8: И ещё у меня тут один момент посеял сомнения... Ты по какому источнику выставляешь значения STATUS WORD? Я по началу ориентировался на вот это: Intel 8080 Microcomputer Systems User's ManualНо дёрнуло меня сравнить со справочником Шахнова... Дык они не совпадают! А с ними не совпадает таблица для STATUS WORD с нашего форума, которую я брал вот здесь: http://it.fitib.altstu.ru/neud/emt/index.php?doc=teor&module=3Я сверился ещё с тремя источниками - и они не совпадают между собой, но один, похоже, совпадает с Intel... И сомнения вызывает HLT - по идее при HLT ничего не пишется в память, но ничего и не читается... Разве что при HLT не выдается строба обращения к памяти, тогда и соответствующий бит STATUS WORD как бы безразличен... А у Intel при HLT: D7 - Чтение памяти ( MEMR) =1 – шина данных будет использоваться для чтения данных из памяти.
_________________ iLavr
|
18 Dec 2012 00:42 |
|
|
HardWareMan
Banned
Joined: 20 Mar 2005 13:41 Posts: 2141 Location: От туда
|
У Intel при HALT выдается не только MEMR, но и WO. Может, PLA внутри 8228 декодирует это как "Illegal State" и отключает все сигналы?
Немного о ВК28:
Так как он определяет, что нужно 3 байта для варианта CALL? По идее, прерывание это:
И это подтверждает таблица:
И согласно уже поднадоевшим кое-кому таблицам машинных циклов ясно, что М1 на то он и первый машинный цикл, когда происходит чтение ( FETCH) самого опкода. И в случае многобайтной команды (например та же CALL) второй и третий циклы уже не будут иметь флаг M1 в статусе. Учитывая, что 8259 использует только команду CALL:
Получается, что 8228 заточен под код команды CALL, а выше озвученная проблема автоматического исполнения команды DI решается самим 8259, который запрещает все прерывания с более низким приоритетом и которого нужно обязательно тронуть, при выходе из прерывания.
Last edited by HardWareMan on 18 Dec 2012 04:32, edited 2 times in total.
|
18 Dec 2012 03:49 |
|
|
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 863
|
Я так и подумал, что ты не обратил внимание, что в таблице WO с чёрточкой сверху...
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
18 Dec 2012 04:17 |
|
|
HardWareMan
Banned
Joined: 20 Mar 2005 13:41 Posts: 2141 Location: От туда
|
А, точно. Забавно, конечно, почему один инверсный сигнал среди 7 нормальных.
|
18 Dec 2012 04:30 |
|
|
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 863
|
Флаг разрешения прерываний сбрасывается самим процессором в цикле подтверждения прерывания. А 8259 лишь маскирует (дополнительно к маске прерываний, хранящейся в регистре маски прерываний) запросы, которые он отработал.
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
18 Dec 2012 04:35 |
|
|
HardWareMan
Banned
Joined: 20 Mar 2005 13:41 Posts: 2141 Location: От туда
|
Я в той книжке нашел следующее упоминание: Отсюда возникает вопрос: наш nMOS старичок не фулл статик? Я к тому, что верхнюю границу тактовой частоты все проверяют, а нижняя на каком уровне? Если он окажется полностью статический, то можно будет выбросить эту книжку. Кто-то же тут собирал ЮТ, на нем вполне можно проверить. Ну а если никто не хочет - что ж, это могу сделать и я, собрав такой маленький стендик для тестов и издевательств над ВМ80. Отмечу, что датащит ограничивает максимальную длительность периода тактов на уровне 2мкс (500КГц):
|
18 Dec 2012 11:52 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Давно известно из многих источников (в частности, П.Хоровиц, У.Хилл "Искусство схемотехники. Том 2."), что у i8080
внутренние регистры динамического типа.
Поэтому он не работоспособен на "нулевой" частоте.
Нижняя граница частоты тактов регламентирована.
_________________ iLavr
Last edited by Lavr on 18 Dec 2012 14:46, edited 1 time in total.
|
18 Dec 2012 11:56 |
|
|
HardWareMan
Banned
Joined: 20 Mar 2005 13:41 Posts: 2141 Location: От туда
|
Изучая PPU от NES/FC я понимаю, что это нормальная практика тех лет. Отсюда другой вопрос: где регламентировано время запуска процессора (установления предсказуемых осмысленных сигналов и, собственно, начала чтения первой команды) и как происходит регенерация внутренних регистров на основе динамической памяти (т.е. конденсаторах)? Для MOS 6502 это все указано в соответствующем мануале.
|
18 Dec 2012 12:04 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Для 8080 это указано в любимых тобой времянках: Tmin ... Tmax.
Минимальное время сброса - 3 такта. Обсуждали здесь уже...
_________________ iLavr
|
18 Dec 2012 12:08 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Жалко LPT высокие частоты не пропустит...
А то, по имеющимся уже оценкам, можно было бы повторить " Специалист"
для пробы вот так - с реальным видео-выходом...
Цифровые модели без аналоговых частей DSIM Proteus симулирует очень шустро!
Пожалуй, на Core 2 Duo на 2 ГГц симуляция " Спеца" была бы в реальном масштабе времени...
_________________ iLavr
|
18 Dec 2012 13:52 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Джентльмены, тем не менее - по поводу HLT:
/WO = 1 и М1 = 1.
Ну М1 = 1 - это ясно, т.к. команда с 1 циклом должна выдать STATUS WORD и подать SYNC.
А что получается с MEMR =1 и /WO = 1 ?
Ведь HLT действительно не обращается к памяти ни на чтение, ни на запись.
Или просто i8080 не выдаёт DBIN/WR во время HLT?
По времянкам Хардыча - выдаётся DBIN при HLT :
Так что читаем - то в HLT ? Ну в первом цикле - сам КОП HLT выходит...
А вот дальше что? На шинах текуший адрес или z-состояние?
_________________ iLavr
|
18 Dec 2012 14:56 |
|
|
HardWareMan
Banned
Joined: 20 Mar 2005 13:41 Posts: 2141 Location: От туда
|
А по графику в 9 цикле нет чтения или записи. Я про DBIN и про WR. Напоминаю, что биты статуса нужны только для декодирования намерений процессора, а сома чтение или запись гейтятся вполне конкретными сигналами, которые в режиме останова он не генерирует.
|
19 Dec 2012 01:57 |
|
|
aav8
Maniac
Joined: 05 Nov 2008 19:47 Posts: 287 Location: 81.28.208.238
|
Это выходит HLT - 2 машинных цикла?
|
19 Dec 2012 02:12 |
|
|