RUЭВМ
Вы хотите отреагировать на этот пост ? Создайте аккаунт всего в несколько кликов или войдите на форум.
Март 2021
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
293031    

Календарь Календарь

Последние темы
» Анонсы монет.
автор Viktor2312 Вчера в 14:30

» Team Red Miner
автор Viktor2312 Вс Фев 28 2021, 17:43

» Пул. beepool
автор Viktor2312 Вс Фев 28 2021, 15:16

» Пул. 2miners
автор Viktor2312 Вс Фев 28 2021, 15:06

» Пул. 0769.it
автор Viktor2312 Вс Фев 28 2021, 14:56

» T-Rex
автор Viktor2312 Вс Фев 28 2021, 14:41

» SRBMiner
автор Viktor2312 Вс Фев 28 2021, 13:53

» PhoenixMiner
автор Viktor2312 Вс Фев 28 2021, 13:26

» NPlusMiner
автор Viktor2312 Вс Фев 28 2021, 13:14

» NiceHash-Miner-Legacy-Fork-Fix
автор Viktor2312 Вс Фев 28 2021, 13:02

» NiceHash-miner
автор Viktor2312 Вс Фев 28 2021, 12:53

» NBMiner
автор Viktor2312 Вс Фев 28 2021, 12:42

» Nanominer
автор Viktor2312 Вс Фев 28 2021, 12:23

» MindMiner
автор Viktor2312 Вс Фев 28 2021, 12:03

» miniZ
автор Viktor2312 Вс Фев 28 2021, 11:32

» lolMiner
автор Viktor2312 Вс Фев 28 2021, 11:01

» KBMiner
автор Viktor2312 Вс Фев 28 2021, 10:58

» Hash Auger
автор Viktor2312 Вс Фев 28 2021, 10:33

» Пул. newpool.pw
автор Atari1974 Вс Фев 28 2021, 10:05

» GMiner
автор Viktor2312 Вс Фев 28 2021, 00:30

» EWBF
автор Viktor2312 Вс Фев 28 2021, 00:28

» Ethminer
автор Viktor2312 Сб Фев 27 2021, 19:57

» Ищу файл печатной платы
автор freddy Пт Фев 26 2021, 14:01

» Языки программирования. Статьи, заметки, очерки, разное...
автор Viktor2312 Чт Фев 25 2021, 19:52

» CryptoDredge
автор Viktor2312 Чт Фев 25 2021, 18:30

Самые активные пользователи за месяц
Viktor2312
"Радио-86РК". Статьи, заметки, очерки, разное... Vote_l10"Радио-86РК". Статьи, заметки, очерки, разное... Voting10"Радио-86РК". Статьи, заметки, очерки, разное... Vote_r10 

Поиск
 
 

Результаты :
 


Rechercher Расширенный поиск


"Радио-86РК". Статьи, заметки, очерки, разное...

Перейти вниз

"Радио-86РК". Статьи, заметки, очерки, разное... Empty "Радио-86РК". Статьи, заметки, очерки, разное...

Сообщение  Viktor2312 Пт Сен 23 2016, 13:27

1
*


Последний раз редактировалось: Viktor2312 (Вт Фев 19 2019, 18:44), всего редактировалось 1 раз(а)
Viktor2312
Viktor2312
Гуру+

Сообщения : 13742
Дата регистрации : 2012-08-10
Возраст : 42
Откуда : Пятигорск

Вернуться к началу Перейти вниз

"Радио-86РК". Статьи, заметки, очерки, разное... Empty Re: "Радио-86РК". Статьи, заметки, очерки, разное...

Сообщение  Viktor2312 Сб Янв 21 2017, 15:44

2
резерв.
Viktor2312
Viktor2312
Гуру+

Сообщения : 13742
Дата регистрации : 2012-08-10
Возраст : 42
Откуда : Пятигорск

Вернуться к началу Перейти вниз

"Радио-86РК". Статьи, заметки, очерки, разное... Empty IN/OUT в системах на 8080 без системного контроллера

Сообщение  barsik Сб Май 04 2019, 20:20

3
Почитывая на досуге вражеские книги и журналы на тему антикварных микропроцессоров (благо проблем с знанием вражеских языков нет), узнал недавно, как следовало с пользой использовать наличие в КР580 команд IN/OUT. Оказывается, чтобы использовать команды IN/OUT совершенно необязательно ставить системный контроллер СК ВК28 (или делать его аналог вокруг 589ИР12 на мелкой логике).

IN/OUT выгодны тем, что они 2-х байтовые, тогда как команды работы с ОЗУ (если не считать косвенную адресацию) - трёх-байтовые. Когда идёт битва за каждый байт, что типично для кода прошиваемого в ПЗУ, то возможность применить IN/OUT становится ценной. Например, лишь из-за нелегального использования команд IN/OUT в РК-ДОС её автор Е.Седов выиграл в объёме кода ~полсотни байт (что вызвало впоследствии много горя при процессоре Z80).

Т.к I/O-портов всего 256, то в РК86 достаточно выделить в области памяти одну страницу в 256 байт. В РК найти свободные сплошные 256 адресов не проблема. Чтобы поиметь 256 портов в памяти, но с которыми можно работать командами IN/OUT, хитрые враги обычно делают так.

Они при работе команд IN/OUT хитро выдают на старшую половину шины адреса (msb) старший адрес страницы выделенной для портов. Например, если мы решили отдать портам участок A000...A0FF, то надо выдавать при OUT на адреса A15...A8 число $A0.

Процессоры 8085 и Z80 сразу дают /IORD и /IOWR, которые можно объединить на двух диодах и резисторе, получив сигнал /IO о том, что идёт команда IN/OUT. А вот при КР580 требуется получать его из "слова состояния", для чего надо по фронту SYNC защёлкивать в 155 ТМ2 биты D4 и D6, а инверсные выходы этих триггеров также объединить двумя диодами. Полученный с помощью 2-х диодов сигнал /IO, когда он равен 0, свидетельствует, что идёт работа с портами.

Если по этому сигналу /IO выдавать на шину данных адрес страницы портов в памяти (в данном примере это $A0), то с портами отображёнными в память можно работать командами IN/OUT, как при наличии системного контроллера. Выгоднее всего старший (msb) байт адреса страницы портов выдавать с помощью двух 555 КП11, т.к при этом одновременно адреса A15...A8 процессора буферизуются. Но можно использовать отключаемый 8-ми разрядный буфер АП6 и резисторы привязки (что даёт страницу портов FF00).

Эти КП11-тые при не OUT-командах пропускают через себя адреса A15...A8 от процессора, а при OUT командах выдают в линии A15...A8 msb-байт адреса страницы портов. Если изменять число набранное на входе КП11, то страницу портов можно "гонять" по всему адресному пространству, что, кстати, и делается в «Корвете» (позволяя создать конфигурацию наиболее удобную для конкретной задачи, например, там одна конфигурация портов для МГ-бейсика и совсем другая для CP/M).

Причём, интересно, что мы получаем порты, которые читаются и по обращению в память и по IN/OUT, что даёт нам ещё больше выигрыша. Во-первых, скорость. LD A,(HL) вдвое быстрее, чем IN A,(port). Во-вторых, мы можем проверять один флаг по биту D7 всего одной командой. Например, INC (HL) при HL указывающем в порт выдаст во флаге Signum значение бита D7 порта, что экономит нам команду OR A. При этом возможность работать с портами двухбайтовыми IN/OUT, и экономить тем самым объём кода в некритичных к скорости местам, сохраняется.

Не знаю дошла ли эта идея до узколобых, что читают этот форум (малоизвестный среди энтузиастов антикварных компьютеров), потому подскажу лишь, что если бы разработчики «РК86» читали в своё время вражеские книги, то они могли бы израсходовать на порты не 32 тысячи адресов, а всего 256, получив при этом выигрыш в объёме кода за счёт двухбайтовости команд IN/OUT, причём не увеличивая число корпусов (даже уменьшив его на один корпус).

PS. Подсказка для технически малограмотных. msb на вражьем языке означает "most significant byte of word or address".
barsik
barsik
Ветеран

Сообщения : 1149
Дата регистрации : 2016-11-10
Откуда : С-Петербург

Вернуться к началу Перейти вниз

"Радио-86РК". Статьи, заметки, очерки, разное... Empty .

Сообщение  barsik Сб Авг 03 2019, 07:26

4
Ставить микросхемы памяти вторым этажом догадались не только авторы РК86. Чуть раньше до этого додумались японцы из фирмы Hitachi, когда в начале 80-тых разрабатывали свои клоны моторолловских микроконтроллеров 6801 и 6805. Наряду с микроконтроллерами в которых программа хранится в ПЗУ с УФ-очисткой и масочных (программируемых при изготовлении на заводе) они изобрели двухэтажные микроконтроллеры совместимые с теми по цоколёвке.

Вторым этажом ставится обычное УФ-ПЗУ типа 2764...27256. И если в традиционных микроконтроллерах за 35 лет встроенное в кристалл УФ-ПЗУ сдохло, то двухэтажные микроконтроллеры пригодны для использования и 35 лет спустя. В них можно любое число раз изменять прошивку (а если используемое перепрограммируемое УФ-ПЗУ сдохнет, не проблема заменить его на новое).

"Радио-86РК". Статьи, заметки, очерки, разное... Hitachi-HD68P01V07.1564788518

"Радио-86РК". Статьи, заметки, очерки, разное... Hitachi-HD68P05V07.1564787796
barsik
barsik
Ветеран

Сообщения : 1149
Дата регистрации : 2016-11-10
Откуда : С-Петербург

Вернуться к началу Перейти вниз

"Радио-86РК". Статьи, заметки, очерки, разное... Empty .

Сообщение  barsik Пн Янв 18 2021, 11:27

5
В 1990-тые годы и даже нулевые (т.е 200x) на компьютеры почти всегда ставили 25-ти штырьковый разъём параллельного интерфейса нужный для подключения принтера. Наличие такого интерфейса позволяло без всяких хлопот и не тратя микросхем осуществлять обмен программами между 8-ми разрядкой и PC, причём в обе стороны. К сожалению, затем появились USB-порты и постепенно параллельные порты (а также и последовательные с 9-ти контактным мышиным разъёмом) исчезли из новых моделей PC.

Потому возникла совсем не простая проблема как передавать файлы на 8-ми разрядку (в обратную сторону уже не столь актуально, т.к все файлы с МГ-лент и дискет 8-ми разрядок были "подняты" на винчестеры PC еще в середине 90-тых). Т.к чтобы обслужить USB-порт так, чтобы конвертировать данные выдаваемые на этот порт в вид доступный для восприятия 8-ми разрядкой нужен целый отдельный микроконтроллер с памятью. Это сделать м.быть и не очень сложно для инженеров специализирующихся на МК, но такое устройство явно нелампово, т.е нарушает принципы ретро компьютинга (использование деталей эпохи).

Недавно мне пришла в голову достаточно странная и м.быть даже тупая идея использовать оптронную передачу через экран PC. Всякий компьютер имеет экран. А написать программу которая в заданных местах экрана выводит то белый квадратик (например 8*8 или 16*16), то чёрный, можно даже на бейсике (компиляторе, хотя и скоростей интерпретатора хватает).

Приклеив в это место экрана скотчем фотодатчик, т.е фотодиод или фоторезистор, мы с минимальными трудозатратами получим гальванически развязанную низкоскоростную линию передачи. Т.к у современных плоских дисплеев время послесвечения всего 1 мс (у дисплеев 15-ти летней давности это обычно 4 мс), то скорость передачи будет почти такой же, как и скорость обмена с магнитофоном.

Это конечно идиотское решение проблемы и кто-то станет смеяться, но, как говорится, "на безрыбье и рак рыба" и "лучше хоть как, чем никак". Для тех же целей можно использовать светодиоды на клавиатуре PC (хотя инерционность светодиодов не намного лучше). Чтобы упростить интерфейс удобно использовать две такие оптронные линии (по одной цепи ставим данные по второй выдаём строб), что позволяет выжать максимальную скорость, которую позволяет инерционность экрана PC.
barsik
barsik
Ветеран

Сообщения : 1149
Дата регистрации : 2016-11-10
Откуда : С-Петербург

Вернуться к началу Перейти вниз

"Радио-86РК". Статьи, заметки, очерки, разное... Empty .

Сообщение  Viktor2312 Пн Янв 18 2021, 11:53

6
(а также и последовательные с 9-ти контактным мышиным разъёмом)

Если стандартный, последовательный, порт RS232 позволяет подключить через него, манипулятор типа "мышь", это не значит, что он мышиный. С таким же успехом его можно было бы назвать модемным или любым другим устройством обозвать.

Т.к чтобы обслужить USB-порт так, чтобы конвертировать данные выдаваемые на этот порт в вид доступный для восприятия 8-ми разрядкой нужен целый отдельный микроконтроллер с памятью. Это сделать возможно и не очень сложно для специалистов, но такое устройство явно нелампово, т.е нарушает принципы ретро компьютинга.

Для этого существуют просто микросхемы, "жёсткой логики" подключается кварц и чуток обвязки и готово. С одной стороны подключается USB порт от РС с другой стороны выход последовательного порта. Кварц обычно в районе 12 МГц. (Схем полно, ищите в журналах 2000-х годов) Я сам видел лично такую схему, простенькая до ужаса, умещается на платке 50 х 50 мм, без применения SMD, ну может кроме самой микросхемы, сейчас трудно будет найти такую в DIP. Вот название и номер, год, запамятовал, да и не нужно мне было, просто случайно наткнулся пару месяцев назад.

Недавно мне пришла в голову достаточно странная и м.быть даже тупая идея использовать оптронную передачу через экран PC. Всякий компьютер имеет экран. А написать программу которая в заданных местах экрана выводит то белый квадратик (например 8*8 или 16*16), то чёрный, можно даже на бейсике (компиляторе, хотя и скоростей интерпретатора хватает).

Приклеив в это место экрана скотчем фотодатчик, т.е фотодиод или фоторезистор (например из оптронного датчика индексной дырки или нулевого трека старого 5-ти дюймового дисковода) мы с минимальными трудозатратами получим вполне гальванически развязанную низкоскоростную линию передачи. Т.к у современных плоских дисплеев время послесвечения всего 1 мс (у дисплеев 15-ти летней давности это обычно 4 мс), то скорость передачи будет почти такой же, как и скорость обмена с магнитофоном.

Лучше 8, и пару для подтверждения данных, выставили байт, 9-й сообщили, что данные готовы для считывания. Идея интересная, не новая, и бесполезная, так как сейчас полно матерей за дёшево и с COM и с LPT портами и с USB нет проблем, при желании. Но увидеть такое в действии было бы здорово, вот только 1 фото диод, не интересно, а 8...9 это было бы шикарно, главное рядом не забыть поставить компактную паровую машину, оформленную в рэтро стиле конца XIX века, это придало бы антуража!

Это конечно идиотское решение проблемы и кто-то станет смеяться, но, как говорится, на безрыбье и рак рыба. Для тех же целей можно использовать светодиоды на клавиатуре PC (хотя инерционность светодиодов не намного лучше). Чтобы упростить интерфейс удобно использовать две такие оптронные линии (по одной цепи ставим данные по второй выдаём строб), что позволяет выжать максимальную скорость, которую позволяет инерционность экрана PC.

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

_________________
"ЛП & ТИ"
Viktor2312
Viktor2312
Гуру+

Сообщения : 13742
Дата регистрации : 2012-08-10
Возраст : 42
Откуда : Пятигорск

Вернуться к началу Перейти вниз

"Радио-86РК". Статьи, заметки, очерки, разное... Empty Re: "Радио-86РК". Статьи, заметки, очерки, разное...

Сообщение  Спонсируемый контент

7

Спонсируемый контент


Вернуться к началу Перейти вниз

Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения