nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 16:20



Reply to topic  [ 14 posts ] 
i8255 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Заинтересовала меня тут одна ситуация с нашим популярнейшим 55-м портом (КР580ВВ55А aka i8255).

Так, судя по известной по всем мануалам таблице, Регистр Управляющего Слова читать нельзя.
Attachment:
i8255.gif
i8255.gif [ 9.23 KiB | Viewed 14962 times ]


Вопрос у меня возник, а что же всё-таки прочитается, если его прочитать?

Вопрос не праздный, в частности, такая ситуация может возникнуть, если в компьютере порты
включены, как ячейки памяти, и мы делаем дамп памяти по этим адресам...
Что считается из Регистра Управляющего Слова i8255?

Жалко, я свой "Специалист_МХ" обратно запрятал... :-? Но может быть кто-либо из своего опыта
знает ответ?

_________________
iLavr


10 Jun 2017 16:33
Profile
Maniac

Joined: 18 Nov 2013 15:15
Posts: 209
Location: все оттуда ;)
Reply with quote
Ссылка из педивикии на intel у меня не открывается :( http://download.intel.com/design/archives/periphrl/docs/23125604.pdf

А вот альтернативные http://www.sharpmz.org/download/82c55a.pdf и datasheet.hk/view_online.php?id=1135008&file=0005\8255a_38897.pdf гласят, что читается Control word !

Плата с 55 портом в наличии есть. А материнки с ISA, что бы поэкспериментировать увы ....


10 Jun 2017 20:26
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Ситуация такова, что даташиты хоть от Intel, хоть сторонние её не проясняют, иначе бы я и не спрашивал.

Из оригинального даташита на i8255A: Datasheet.hk_8255a_38897.pdf
Attachment:
i8255A.gif
i8255A.gif [ 9.31 KiB | Viewed 14945 times ]

Видим, что операция чтения из Регистра Управляющего Слова трактуется как Illegal Condition.

Но реально, оттуда что-то читается, ситуация возникла в реальных условиях на макете -
что-то из Регистра Управляющего Слова читается, и, похоже, не то, что я предполагаю.

Я через пару дней, возможно, увижу этот байт, сейчас на макете некуда пока его вывести,
чтобы увидеть... Но, видимо, это значение меня озадачит, поэтому решил посоветоваться... :wink:


Ну а с 82С55 - ситуация как с таймерами ВИ53\54: у ВИ53 регистр настройки также не читается,
а у ВИ54 - регистр настройки прочитать можно.
Attachment:
82C55.gif
82C55.gif [ 22.81 KiB | Viewed 14945 times ]

Отсюда один вывод, который мне ничего не проясняет: 82С55 - это модернизированный i8255A.

Но меня интересует, что же читается вот в тот самый момент, который трактуют как Illegal Condition.
И ситуация ещё интересней, Регистр Управляющего Слова у меня читается сразу после сброса
и процессора и порта, когда в него ещё ничего и не успели записать... :roll:

_________________
iLavr


11 Jun 2017 04:05
Profile
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
Могу на "Орионе" в М256 почитать РУС какого-нибудь ВВ55-го. Надо?


11 Jun 2017 06:05
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
VituZz wrote:
Могу на "Орионе" в М256 почитать РУС какого-нибудь ВВ55-го. Надо?

Неудобно было просить, но это было бы просто великолепно, чтобы потом можно было сравнить:
что прочиталось из РУС у тебя на "Орионе", что прочитается у меня на моём макете.

И если не затруднит PVV - тоже попрошу прочитать РУС КР580ВВ55А на его "Специалисте".


P.S. К сожалению состояние подготовки к ремонту в доме вынуждает всё заворачивать в целофан
и прятать. Иначе бы я и на своем "Специалисте" РУС порта ВВ55 прочитал...

_________________
iLavr


11 Jun 2017 06:13
Profile
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
Не стал разбираться, что там к чему, просто посчитывал и позаписывал по адресу F603h, где, если мне память не изменяет, находится РУС третьего ВВ55 в "Орионе". Ну, как бы это сказать, что-то читается... :-) После включения там 40h, если же попробовать писать туда разные значения, то считывается в основном 20h, но может быть и 80h, и A0h. Считывается не то, что пишется, и зависит, видимо, от того, что записал туда ранее. Если что-то конкретное надо посмотреть-позаписывать, то я могу, мне это не тяжко... :-)

Использовал EDMEM, не M256. Им оказалось удобнее и сильно быстрее. Может, что не так делал?


11 Jun 2017 07:04
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
VituZz wrote:
После включения там 40h, если же попробовать писать туда разные значения, то считывается в основном 20h, но может быть и 80h, и A0h. Считывается не то, что пишется, и зависит, видимо, от того, что записал туда ранее.

Я что-то такое подозревал... что считывается, возможно, разный код.

У меня ситуация вот какая: в процессе отладки микропроцессор "наезжает" на область портов,
поскольку они включены, как ячейки памяти, и исполняет считанные из портов байты как код.
Вместо всей остальной памяти процессор исполняет NOP из резисторов на ШД.

Известно, что при подаче сигнала начального сброса RESET регистр управляющего слова ВВ55
устанавливается в состояние, при котором все каналы настраиваются на работу в режиме 0
на ввод информации.
Поэтому, из портов А, В, С микропроцессор читает то, что я ему резисторами снаружи подставил. :wink:
А вот что он выполняет, читая РУС, я могу сейчас только догадываться - но по осциллограммам
вижу, что точно не NOP и не одно и то же...

_________________
iLavr


11 Jun 2017 07:38
Profile
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
Я выполнил такую команду:
DF800,F8FF
и получил вывод вида:
00 FB 00 FB 00 FB 00 FB 00 FF 00 FF 00 FF...
если нажимать кнопки на клавиатуре во время вывода, то значение FF меняется и повторяется четное число раз. Такое впечатление, что из адреса управляющего слова считывается предыдущее значение регистра, настроенного на ввод... мс КР580ВВ55 91го года выпуска...


12 Jun 2017 11:28
Profile
Doomed

Joined: 10 Mar 2012 16:21
Posts: 598
Location: РФ
Reply with quote
Хм .. Однако интересно всё сие ..
А у моей самоделки не получится прочитать по адресу У(правляющего)С(лова) .
У меня дешифратор для RD&{A0,A1==1,1} отдельный регистр ввода выбирает.
( потому как нечего пропадать даже одному адресу адресного пространства )


14 Jun 2017 06:21
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Ну и поскольку я доделал свою "махарайку" (как говорит Tronix :lol: ), я решил для себя прояснить
этот вопрос, который сама же "махарайка" передо мной и поставила:
Что же считается из Регистра Управляющего Слова i8255 (aka КР580ВВ55А) сразу после
включения питания, когда в РУС еще ничего не записывали?


По включению питания у меня пошагово отработала следующая программа:
Code:
0000:
   JMP 0F003H; переход в "ПЗУ" (реально это порт А ППА, через который от LPT PC подаются эти коды)
F003:
   IN  0FCH;   выключить стартовую карту памяти
   LDA 0FFFFH; считаем РУС
   MOV B,A;    сохраним в B
   MVI A,92H;  PORT INI WORD
;-------- A - на ввод (по нему и поступают коды)
;-------- B - на ввод - не используем
;-------- C - на вЫвод (8 светодиодов индикации)
   STA 0FFFF;  настроим порт ВВ55
   STA 0FF7F;  вЫвод в C = 92H (убедимся что порт настроен правильно)
   MOV A,B;    восстановим состояние РУС по включению
   STA 0FF7F;  вЫвод значения РУС в C
   LDA 0FFFFH; снова считаем РУС (там записано 92H)
   STA 0FF7F;  вЫвод значения РУС в C
   HLT;        остановим процессор


У меня получилось, что после включения питания в РУС находится 00H.

Но и после того как ППА был настроен Управляющим словом 92H, из РУС всё равно читается 00H.
(Понятно, что читается "с адреса" РУС, поскольку как реагирует ППА на "запрещенное" чтение - неизвестно.)

Аппаратно эксперимент чистый: D0...D7 процессора напрямую соединены с D0...D7 ППА, никаких
резисторов или шинных формирователей - нет.
Выдаваемое процессором на D0...D7 слово состояния мешать не должно, программа выполняется
пошагово и значение STATUS должно успеть "рассосаться" на ШД.

ППА типа КР580ВВ55А 8804.

_________________
iLavr


25 Jun 2017 11:44
Profile
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
Для чистоты эксперимента можно попробовать порты разных заводов и годов выпуска.


26 Jun 2017 20:18
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Мне пока представляется следующее (как предположение): сам порт К580ВВ55А по обращению
в Регистр Управляющего Слова не выдает ничего, похоже, что Z-состояние на ШД. А проц читает
то, "что случилось" в этот момент на ШД.

Вы оба делаете дамп памяти по портам ППА, т.е. серию чтений подряд, поэтому у вас есть какие-то
значения, и они разные, поскольку у вас разные компьютеры, а значит и разная ситуация на ШД.

А я читаю РУС медленно в пошаговом режиме, поэтому шина успевает разрядиться и у меня читается 00H.
Вот такое пока предположение...

_________________
iLavr


27 Jun 2017 03:04
Profile
Doomed
User avatar

Joined: 23 Nov 2007 15:53
Posts: 441
Location: Saint Petersburg, Russia
Reply with quote
Ну так что в итоге решили, открывает 8255 буфера на шину данных при чтении регистра управления, или нет?

_________________
"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!". :wink:
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.


09 Apr 2023 03:30
Profile WWW
Maniac
User avatar

Joined: 14 Oct 2019 18:10
Posts: 273
Location: Tashkent
Reply with quote
У меня выдаёт два значения - FE и FF.


20 Mar 2024 12:27
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 14 posts ] 

Who is online

Users browsing this forum: No registered users and 10 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.