Proteus C++ DLL's

Использование и разработка софта (преимущественно на ПЦ)

Moderator: Shaos

aav8
Maniac
Posts: 287
Joined: 05 Nov 2008 19:47
Location: 81.28.208.238

Post by aav8 »

0100 0010 CY=1
RLC
1000 0100 CY=0
RLC
0000 1001 CY=1

0100 0010 CY=1
RAL
1000 0101 CY=0
RAL
0000 1010 CY=1

Ты ничего не напутал?
Вполне возможно.
У меня уже вкралось такое подозрение.
Скажите пж-та коды этих 4-х операций.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

aav8 wrote:Можно будет позаниматься прерываниями.
Вот насчет прерываний - запилили меня сомнения, но откуда не вспомню никак:
если по прерыванию получаем вектор RST N, то DI выполняется чисто аппаратно само,
а если CALL ADDR, то DI - должно быть первым кодом подпрограммы обслуживания
прерывания.

Это так, или я что-то подзабыл?

Дословно информация выглядит вот так:

Image

То есть, получается что RST N просто из текста программы само делает DI?
А в перываниии - это как бы дублируется ещё и механизмом прерывания
самого процессора?
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

2_aav8: И ещё у меня тут один момент посеял сомнения... :(
Ты по какому источнику выставляешь значения STATUS WORD?
Я по началу ориентировался на вот это:


Intel 8080 Microcomputer Systems User's Manual

Но дёрнуло меня сравнить со справочником Шахнова...



Дык они не совпадают! :o

А с ними не совпадает таблица для STATUS WORD с нашего форума, которую
я брал вот здесь: http://it.fitib.altstu.ru/neud/emt/inde ... r&module=3
SlovoSost.jpg
Я сверился ещё с тремя источниками - и они не совпадают между собой,
но один, похоже, совпадает с Intel...

И сомнения вызывает HLT - по идее при HLT ничего не пишется в память,
но ничего и не читается...
Разве что при HLT не выдается строба обращения к памяти, тогда и
соответствующий бит STATUS WORD как бы безразличен... :-?

А у Intel при HLT:
D7 - Чтение памяти (MEMR) =1шина данных будет
использоваться для чтения данных из памяти
.
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

Lavr wrote:А у Intel при HLT:
D7 - Чтение памяти (MEMR) =1шина данных будет использоваться для чтения данных из памяти.
У Intel при HALT выдается не только MEMR, но и WO. Может, PLA внутри 8228 декодирует это как "Illegal State" и отключает все сигналы?

Немного о ВК28:
Image
Так как он определяет, что нужно 3 байта для варианта CALL? По идее, прерывание это:
Image
И это подтверждает таблица:
Image
И согласно уже поднадоевшим кое-кому таблицам машинных циклов ясно, что М1 на то он и первый машинный цикл, когда происходит чтение (FETCH) самого опкода. И в случае многобайтной команды (например та же CALL) второй и третий циклы уже не будут иметь флаг M1 в статусе. Учитывая, что 8259 использует только команду CALL:
Image
Получается, что 8228 заточен под код команды CALL, а выше озвученная проблема автоматического исполнения команды DI решается самим 8259, который запрещает все прерывания с более низким приоритетом и которого нужно обязательно тронуть, при выходе из прерывания.
Last edited by HardWareMan on 18 Dec 2012 04:32, edited 2 times in total.
b2m
Devil
Posts: 905
Joined: 26 May 2003 06:57

Post by b2m »

HardWareMan wrote:У Intel при HALT выдается не только MEMR, но и WO.
Я так и подумал, что ты не обратил внимание, что в таблице WO с чёрточкой сверху...
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

b2m wrote:
HardWareMan wrote:У Intel при HALT выдается не только MEMR, но и WO.
Я так и подумал, что ты не обратил внимание, что в таблице WO с чёрточкой сверху...
А, точно. Забавно, конечно, почему один инверсный сигнал среди 7 нормальных.
b2m
Devil
Posts: 905
Joined: 26 May 2003 06:57

Post by b2m »

HardWareMan wrote:выше озвученная проблема автоматического исполнения команды DI решается самим 8259
Флаг разрешения прерываний сбрасывается самим процессором в цикле подтверждения прерывания. А 8259 лишь маскирует (дополнительно к маске прерываний, хранящейся в регистре маски прерываний) запросы, которые он отработал.
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

Shaos wrote:P.S. А это не та ли книжка, в которой "схема заряда шины" была нарисована? ;)
Я в той книжке нашел следующее упоминание:
Image
Отсюда возникает вопрос: наш nMOS старичок не фулл статик? Я к тому, что верхнюю границу тактовой частоты все проверяют, а нижняя на каком уровне? Если он окажется полностью статический, то можно будет выбросить эту книжку. Кто-то же тут собирал ЮТ, на нем вполне можно проверить. Ну а если никто не хочет - что ж, это могу сделать и я, собрав такой маленький стендик для тестов и издевательств над ВМ80. Отмечу, что датащит ограничивает максимальную длительность периода тактов на уровне 2мкс (500КГц):
Image
Image
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

HardWareMan wrote:Отсюда возникает вопрос: наш nMOS старичок не фулл статик? Я к тому, что верхнюю границу тактовой частоты все проверяют, а нижняя на каком уровне?
Давно известно из многих источников (в частности, П.Хоровиц,
У.Хилл
"Искусство схемотехники. Том 2.
"), что у i8080
внутренние регистры динамического типа.

Поэтому он не работоспособен на "нулевой" частоте.

Нижняя граница частоты тактов регламентирована.
Last edited by Lavr on 18 Dec 2012 14:46, edited 1 time in total.
iLavr
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

Lavr wrote:у 8080 регистры динамического типа.
Изучая PPU от NES/FC я понимаю, что это нормальная практика тех лет. Отсюда другой вопрос: где регламентировано время запуска процессора (установления предсказуемых осмысленных сигналов и, собственно, начала чтения первой команды) и как происходит регенерация внутренних регистров на основе динамической памяти (т.е. конденсаторах)? Для MOS 6502 это все указано в соответствующем мануале.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

HardWareMan wrote:
Lavr wrote:у 8080 регистры динамического типа.
Изучая PPU от NES/FC я понимаю, что это нормальная практика тех лет. Отсюда другой вопрос: где регламентировано время запуска процессора (установления предсказуемых осмысленных сигналов и, собственно, начала чтения первой команды) и как происходит регенерация внутренних регистров на основе динамической памяти (т.е. конденсаторах)? Для MOS 6502 это все указано в соответствующем мануале.
Для 8080 это указано в любимых тобой времянках: Tmin ... Tmax.

Image

Минимальное время сброса - 3 такта. Обсуждали здесь уже...
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Жалко LPT высокие частоты не пропустит... :(

А то, по имеющимся уже оценкам, можно было бы повторить "Специалист"
для пробы вот так - с реальным видео-выходом... :lol:

Image

Цифровые модели без аналоговых частей DSIM Proteus симулирует очень шустро! :o

Пожалуй, на Core 2 Duo на 2 ГГц симуляция "Спеца" была бы в реальном масштабе времени...
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Джентльмены, тем не менее - по поводу HLT:
Lavr wrote:А у Intel при HLT:
D7 - Чтение памяти (MEMR) =1шина данных будет
использоваться для чтения данных из памяти
.
/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
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

А по графику в 9 цикле нет чтения или записи. Я про DBIN и про WR. Напоминаю, что биты статуса нужны только для декодирования намерений процессора, а сома чтение или запись гейтятся вполне конкретными сигналами, которые в режиме останова он не генерирует.
aav8
Maniac
Posts: 287
Joined: 05 Nov 2008 19:47
Location: 81.28.208.238

Post by aav8 »

Это выходит HLT - 2 машинных цикла?