История о закрытии гештальта.


В старшие школьные годы, в библиотеке мне попалась книга «Простейшая микро-ЭВМ», где для школьников подробно объяснялось, как спаять свою вычислительную машину на микропроцессоре КР580ИК80А. Помню, что книгу зачитал просто до дыр, и в целом она определила мою судьбу в области электроники и программирования. Но тогда я понимал, что у меня не хватит пороха и возможностей сделать эту вычислительную машину, так как не было ни средств, ни опыта, ни подходящего наставника. Книгу я вернул обратно в библиотеку, отксерив некоторые листы.

В конце этого года spiritus_sancti обмолвился, что у него есть лишний УМК — Учебный Микропроцессорный Комплект. И тут я понял, вот она — мечта моего детства, она есть в железе и она реальна! И тут же начал просить мне его прислать. И с этого момента начинаются увлекательные предновогодние приключения.

Книга «Простейшая микро-ЭВМ»


Подобных проектов было несколько, самый известный — это ЮТ-88, но увы, он прошёл мимо меня. А книга «Простейшая микро-ЭВМ» Буреев Л.Н., Дудко А.Л., В.Н.Захаров меня тогда потрясла. И покуда шла организация отправки и доставки, я озадачился покупкой данной книги. Оказалось, что книга относительно редкая, и несколько раз сделка у меня сорвалась, но таки удалось её удачно найти на книжном аукционе. И наконец я её получил, даже раньше самого УМК.



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

На одной из страниц приводится пример аппаратной реализации, внешний вид которой меня очень вдохновлял в то время.



Попутно с этой книгой, искал всю известную информацию по УМК-80, и как оказалось, в сети очень мало данных об этом. Но об этом поговорим позже.

Распаковка волшебного чемодана


Наверное, это самый желанный и ожидаемый подарок для меня в последнее время. И я с нетерпением ждал отправки, затем каждые два часа обновлял статус доставки и ждал, когда же он придёт. И наконец настал тот удивительный миг, когда я получил этот чемодан!


Долгожданный чемодан моей мечты.

Конечно же, скорее его нужно открыть:



О да, это он! Конечно же, я понимаю что многие читатели делали на подобных аппаратах лабораторные работы в институте. Но у меня не было таких лабораторных работ и я даже не знал, что такие устройства существовали в природе и именно поэтому для меня это настоящая радость открытий. Особенно радует его полная комплектность и, наверное, работоспособность.

Когда появляется новая электрическая игрушка, мы её стараемся воткнуть в сеть и насладится её работой. То же самое сделал и я, включаю, светодиоды зажигаются на пару секунд, а затем БАБАХ!



Гаснет свет во всей квартире, а из чемодана идёт волшебный дым. Новый год с фейерверкером… Печали моей не было предела, не успел получить, а уже сломал…

Диагностика и ремонт


Зная из личной практики, если откуда-то пошёл волшебный дым, лучше это обратно в розетку не включать. Поэтому я включил выбитые автоматы и начал разбирать УМК для его диагностики и ремонта.

Внутри он оказался очень добротно сделан, прям даже снимаю шляпу перед инженерами:


Потроха.

Блок питания обычный трансформаторный, внутри всё очень аккуратно. Более всего подивили накрутки на контакты, как самый надёжный способ соединения (более надёжный чем пайка).


Накрутки на контакты.

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

Виновник взрыва отыскался быстро — это был металлобумажный конденсатор на 0,1 мкФ, который пробился и взорвался. Как оказалось — это очень частая проблема, у другого товарища случилась такая же неприятность.


Взорванный конденсатор.

Поскольку конденсатор стоит во входном фильтре, и по сути он ни на что особо не влияет, поэтому я просто его грубо выкусил. На данный момент закупил керамический конденсатор на 0,1 мкФ на 400 В, просто не доходят руки его поставить (всё стабильно работает и так).


Первый запуск после ремонта. Ещё не убран обратно в чемодан.

После всех процедур и проверок всё убрал в чемодан и закрепил на винты.

Архитектура


▍ Вступление


У меня на руках Учебный Микропроцессорный комплект, производства завода VEF. Обычно в литературе он называется, как УМК-80. Хочу обратить внимание, что есть несколько типов учебных микропроцессорных комплектов, с архитектурой i8080, например, УМПК-80, они достаточно сильно отличаются между собой. Здесь же я рассказываю только о своём, УМК-80.
Когда я искал литературу, а затем писал код, то столкнулся с тем, что в разной литературе даётся разная информация. И как-то не удалось мне встретить одну книжку, в которой будет всё-всё-всё расписано так, что бери да программируй. Например, в одной книге даётся хорошее описание аппаратной части, но примеры кода используют процедуры, которые содержатся в дополнительной ПЗУ, когда-то зашитой преподавателем (у меня таковой нет). В другой книге даётся полезная информация по программированию, но адреса памяти и портов не соответствуют моей ЭВМ. В третьей книге используется контроллер RS-232, которого у меня нет, и разумеется там должно быть дополнительное ПЗУ для работы с этим контроллером.

Поэтому мне пришлось собирать информацию по крупицам, по всеярунету, в великом походе по граблям, половина из которых были детские.

В какой-то момент меня одолело такое сильное отчаяние, что я решил даже взять и переписать всю программу монитор из ПЗУ вручную, затем её дизассемблировать и посмотреть, что же там происходит. Просто снял на видео от первого до 1024d адреса и потом начал набирать вручную. Но потом понял, что это займёт неадекватно много времени и плюнул на это занятие.

Если кто сможет из видео распознать hex и сложить в текстовый документ, буду очень признателен. Лично я сломался после первых 256 байт и часа ввода.

▍ Описание архитектуры


Одну из самых ценных книжек мне скинул sfrolov: Рыбин А. А. «Методические указания по выполнению РГЗ». Не знаю, как там с авторскими правами, поэтому ссылки на книгу приводить не буду. Но она легко ищется в интернете. В данной книге даются хорошие основы, схема, а главное порты реально соответствуют моей машине (это первое издание, в котором полностью всё совпало). Далее идут примеры кода, которые у меня уже не работают, потому что используются внешние процедуры. Цитаты буду приводить из разных книг, чтобы меня не обвинили в плагиате или чрезмерном цитировании.


Внешний вид ЭВМ.

  • Микропроцессор: КР580ВМ80, аналог i8080
  • ПЗУ: 1 килобайт, в ней содержится программа «Монитор».
  • ОЗУ: 1 килобайт (расположена начиная с адреса 0х0800).

Внутри есть панелька, куда можно поставить дополнительное ПЗУ и туда уже записать свою программу. Пока думаю, где взять флешку pin-to-pin совместимую (или близкую) к К573РФ1.

Распределение адресного пространства памяти в УМК-80:
Поле адресов Назначение
0000–03FF РПЗУ с программой Монитора
0400–07FF РПЗУ пользователя
0800–0BFF ОЗУ

Любопытно взглянуть на структурную схему УМК-80.



У меня нету ни RS-232 и всего 1 кБ ПЗУ, но в остальном архитектура точно такая же.
Любопытно, что есть аппаратные клавиши, которые управляют работой процессора, например, СБ (сброс) или РБ/ШГ (переключатель в пошаговый режим), а также есть просто кнопки, которые обслуживаются программой «Монитор» и их можно использовать в своих программах.



Самое интересное, что процессор можно перевести в режим пошагового исполнения инструкций (переключатель «РБ/ШГ»), тогда загораются все светодиоды (адреса, данных, состояния) и можно двигаться по шагам программы кнопкой «ШГ» (шаг). Можно делать шаг машинного цикла или шаг команды.


УМК-80 в пошаговом режиме исполнения команд.

Это уникальный режим, который позволяет проводить отладку, и выполнять инструкции по шагам, наблюдая, что же делает процессор в каждый свой такт.
Клавиатура с цифровыми клавишами и буквенными используется в программе монитор. Например, чтобы заложить значение в память, нажимаем клавишу «П», затем клавишу пробел и вводим адрес. Можно заменить значение ячейки, после изменения нажимаем снова пробел и переходим к следующей ячейке. По окончании нажимаем «ВП». Чтобы стартануть программу, нужно нажать клавишу «СТ», затем ввести адрес программы, откуда начать выполнение и клавишу «ВП».

▍ Порты ввода-вывода


Одной из проблем, что в разной литературе указанны различные цифры портов ввода-вывода. Поэтому пришлось попробовать все возможные варианты и найти подходящий для моей ЭВМ. Привожу её в таблицу:

Распределение адресного пространства портов внешних устройств в УМК-80:
Адрес Направл Назначение
F8 Вывод Регистр сканирования клавиатуры дисплея
F9 Вывод Регистр сегментов дисплея
FA Ввод Регистр чтения клавиатуры (код столбца нажатой клавиши сканируемой строки)

▍ Дисплей и клавиатура


Поскольку мне хотелось сделать какую-то демку, то пришлось разобраться с тем как же работает дисплей. Хитрость в том, что дисплей и клавиатура висят на одном и том же порту. Чтобы зажечь индикатор, необходимо в один порт F8 выставить бит, который соответствует выбранному индикатору, а в порт F9 вывести символ.



О дисплее я ещё расскажу подробнее ниже, как же с ним работать.
Клавиатура представляет собой обычную матричную клавиатуру, с режимом сканирования (когда есть “бегущий бит”), и считывается по соответствующей таблице. Клавиатуру тоже можно использовать в своих программах.


Схема клавиатуры.

Можно понять, как всё это работает, по схеме матричного сканирования дисплея и клавиатуры.



Всего этого достаточно, чтобы написать свою первую программу.

Эмулятор


Для тех, кто не может достать такое чудо чудное, существует бесплатный, программный эмулятор "Симулятор УМПК-80". Обращаю внимание, что это УМПК-80, но всё же он достаточно близок по архитектуре, хотя конечно же отличия есть. Главное его достоинство в том, что на нём можно даже отлаживать свои программы. И на первых этапах я использовал его как транслятор для программ.



Однако я столкнулся с тем, что у него есть ошибки в работе некоторых ассемблеровских инструкций, также если его свернуть, не всегда можно развернуть обратно и просто иногда бывает его вышибает с кучей сообщений. Тем не менее, это весьма классная штука, если хочется «пощупать».

Транслятор


На самом деле, в идеальном мире для этого аппарата пишется программа на ассемблере на листочке, затем по таблице системы команд процессора 8080, например, этой, программа переводится в машинные коды и затем уже переносится вручную в ЭВМ.

Меня достаточно быстро задолбало так делать (сделал одну минипрограмму), и я начал искать способы трансляции ассемблера. Одним из требований было — это устанавливать адрес начала инструкции. Это очень удобно, если какие-то куски программы могут меняться, а какие-то функции нет. Чтобы не перенабирать целиком всю программу, а только отдельные участки. Вообще, работа с этим аппаратом немного отличается от традиционного программирования, потому что ты «скомпилированную» программу правишь в машинных кодах «на лету».

Изначально, как уже сказал, использовал Симулятор УМПК-80 для компиляции программ, и да, это даже работало. Но во-первых, программа глючная, а во-вторых, она не позволяет делать отступы и размещать процедуры в произвольных областях памяти. Плюс, невозможно называть константы. Поэтому пришлось искать альтернативный вариант.

В результате поиска, я остановился на zasm. Для того чтобы его скомпилировать, необходимо выполнить следующие строки:

sudo apt install gcc g++ make automake git zlib1g-dev
git https://github.com/Megatokio/zasm.git
cd zasm
git checkout $(git tag | tail -n 1)
unlink Libraries
git clone https://github.com/Megatokio/Libraries.git Libraries
cd Linux
make

Далее zasm можно скопировать в удобное для себя место, например, в домашнюю директорию:

mkdir -p ~/bin
cp zasm ~/bin

Лично я скопировал его в папку с программами, где пишу код. Для того чтобы транслировать программу для нашего процессора, нужно выполнить:

./zasm --asm8080 test.asm

В результате после компиляции будет создан rom-файл с именем программы, в данном случае test.rom. Его содержимое можно посмотреть, например, с помощью hexdump:

 hexdump test.rom -v -e '/1 "%02X\n"'
21
92
24
06
01
...

Но мне не понравился такой подход, потому что не пишутся адреса. Когда программа очень длинная, удобно сопоставлять строку с реальным адресом. В результате набросал программу на си, которая выводит код с реальными адресами.

#include <stdio.h>

int main ( int argc, char *argv[] ) {
	if ( argc != 2 ) {
		printf( "usage: %s filename", argv[0] );
	} else {
		FILE *file = fopen( argv[1], "r" );
		if ( file == 0 ) {
			printf( "Could not open filen" );
		} else {
			int x;
			int i = 0x0800;
			while  ( ( x = fgetc( file ) ) != EOF ) {
				printf("%04x  %02x\n", i++, (unsigned int)0x00FF & x);
			}
			fclose( file );
		}
	}
	return 0;
}

Такой вариант намного удобнее для того чтобы переносить его в память УМК-80.

 ./print_prg test.rom
0800  21
0801  92
0802  24
0803  06
0804  01
...


Рекомендую документацию по zasm.

Пробная программа


Наверное я уже утомил теоретической частью, давайте же что-нибудь на нём сделаем. Самый простой вариант — это выведем на экран какой-либо символ.
Как вы помните из раздела по железу, для того чтобы вывести символ, нам нужно в порт F8 записать бит экрана (от 0 до 5 бита) и затем в порт F9 вывести символ. Давайте зажжём все светодиоды индикатора и запишем просто FF. После этого делаем безусловный переход в начало программы и повторяем её. Итого, программа будет очень простой:

m1:
mvi A, 01
out F8
mvi a, ff
out F9
jmp m1

Пробуем всё это скомпилировать zasm и у нас ничего не получается, потому что нужно всё оформить по красоте. Хотя в симуляторе она соберётся и можно машкоды взять из него. Но мы пойдём по правильному пути.

	ORG 0800h
m1:
	mvi A, 01h
	out 0F8h
	mvi a, 0ffh
	out 0F9h
	jmp m1

Указываем с какого адреса начинается программа: 0800h и указываем что переменные у нас в шестнадцатеричном формате (обратите внимание на формат записи). Можно теперь всё собрать и посмотреть программой на си.



Для того чтобы ввести программу, включаем наш чемодан. После жмём СБ (сбрасываем его). Нажимаем кнопку «П» (ввод программы), вводим адрес: 0800 и нажимаем пробел. У нас будет гореть приглашение к вводу программы:


Приглашение к вводу данных в память.

После ввода этой ячейки памяти, нажимаем пробел и переходим на следующую ячейку, пока не введём всю программу. По окончании нажимаем «ВП».

Для запуска, нажать клавишу «СТ», ввести стартовый адрес, в нашем случае 0800 и нажать «ВП». В результате получится светящийся всеми сегментами индикатор.



Выводим текст


Для того чтобы сформировать на индикаторах символы, необходимо их кодировать и сложить в памяти. У программы “Монитор” есть своя таблица, но без декодирования я не знаю где она лежит. Поэтому я воспользовался программой "Segment Code Generator".



Удобно выставить какому биту соответствует какой светодиод и формат кода вывода. На скриншоте выше стоит корректный вариант для УМК. Формируем коды для символов и размещаем их в памяти, далее будет динамическая индикация.

Набросаем тестовую программу:

	ORG 0800h
start:
	mvi b, 01 ; Стартовый бит дисплея
	;регистр b указывает какой индикатор
	mvi d, 08h ;откуда берём код индикатора
	mvi e, 20h ;0820 (d+e)
m2:
	call out_p
	mov a, b
	cpi 20h 
	jz start; если подошли к концу, то перейти  на m1
	rlc 	; сдвинуть влево
	mov b, a
	inx d 	;инкрементируем указатель на даннырый сделан очень добротно и воспитал большое количество хороших спее
	jmp m2
out_p:		;подпрограмма вывода
	mov a, b; регистр В хранит порядковый бит сегмента
	out 0F8h; зажигаем соответствующий сегмент
	ldax d 	;загружаем в А содержимое по адресу ячейки D+E
	out 0F9h
	ret
	ORG 0820h;Адрес с данными
	DB	73h, 6Eh, 7Fh, 5Eh, 39h, 00h

Вначале мы загружаем в регистр B бит первого индикатора, в регистровую пару D и E — адрес, откуда брать данные.

Вызываем подпрограмму вывода данных, известную нам из прошлого примера. Только мы загружаем в регистр А данные по адресу, лежащему в регистровой паре D+E. Поскольку у нас все операции идут только с регистром А, то приходится в него загружать содержимое регистра B. 0x20 — это адрес последнего дисплея, если мы на нём, то сбрасываемся в начало. Если нет, то сдвигаем А влево и записываем B и делаем безусловный переход на метку m2.

Компилируем, выводим на экран и вбиваем в УМК код. Даже снял кинцо, как я вводил программу (конечно же не без ошибок, но кто не без греха, пусть бросит в меня камень). Можно оценить, как вводится код.

Далее идёт ручная проверка и корректировка по ходу пьесы.
В результате получим такую красоту:


РУВdС

Видна паразитная засветка, это потому что я не выдерживаю паузу между выводом на каждый индикатор, поэтому порт не успевает закрыться и немного подсвечивает соседний индикатор. Это хорошо видно на последнем, на котором отчётливо читается буква «С», хотя там ничего не выводится.
Паузу не стал добавлять, чтобы не переусложнять код.

Выводы


Игрушка просто потрясающая. Никогда ранее не программировал для процессоров i8080, и с архитектурой их был не знаком. Хотя писал на ассемблере для AVR, C51, x86, чуток для ARM. Но тут смутило, что всё делается через один регистр, что немного напрягает. С другой стороны, простота адресации, полная прозрачность, возможность редактировать программы налету прямо в машкодах — это просто потрясает. Получил просто невероятное удовольствие от разработки. Вообще, мне очень нравится писать на ассемблере, это полезно делать, чтобы мозг не зачах, как-то освежает, что ли.

В данной статье привёл только самые простые программы, потому что читатель просто уснёт от объёмов выкладок. Но, к сожалению, на таком стенде большие программы очень сложно отлаживать.

Для своего времени это великолепный обучающий стенд, который сделан очень добротно и воспитал большое количество хороших специалистов. Но сегодня он совершенно не актуален и не нужен. Некоторые могут возразить, мол принципы остались те же. Но нет, посмотрите архитектуры современных процессоров, вся эта возня в машинных кодах совершенно бесполезна и бессмысленна. Это всё равно что учить проектировщиков современных двигателей спортивных автомобилей, по учебникам постройки паровых двигателей для судов начала ХХ века. И там и там поршни, и там и там двигатель, и там и там идёт преобразование энергии и принципы схожи, но информация не актуальная, а может быть даже вредная.

Внимание розыск


Пользуясь случаем, хочу спросить у преподавателей и людей, которые имели опыт пользования этим устройством помощи в поиске документации на него. А также, быть может у кого есть описание интерфейсного разъёма и дочерней платы к нему:



Быть может у кого-то есть схема дочерней платы с интерфейсом RS-232 и программой? В целом я представляю, как её собрать самостоятельно, но зачем изобретать велосипед?

Может, кто подскажет, каким программатором сегодня можно прошить ПЗУ, для данного УМК, чтобы добавить свой функционал. За любую посильную информационную помощь буду очень признателен. Слишком мало информации в интернете.

Используемая литература


Так получилось, что информации очень мало, и многое собирал по крупицам, по всему интернету. Поэтому приведу список тех самых актуальных книг, которые у меня настольные, при работе с данным чемоданом. На деле, при поиске информации я перечитал около десятка книг.
  1. "Простейшая микро-ЭВМ Буреев" Л. Н., Дудко А. Л., Захаров В.Н. Книга, с которой я начал. Очень полезная в плане понимания что и как работает.
  2. «Методические указания по выполнению РГЗ» Рыбин А. А. — полезная книга, но примеры кода смотреть бессмысленно, потому что используют внутренние подпрограммы.
  3. «Цифровые и микропроцессорные устройства. Лабораторный практикум» Ю.В. Алхимов (2009 г).
  4. Микропроцессор 8080 — короткая заметка, со списком команд микропроцессора. Очень удобна в работе.
  5. Левенталь Л., Сэйвилл У. «Программирование на языке ассемблера для процессоров 8080 и 8085.» –М.: Радио и связь, 1987. — практически настольная книга. Очень классно изучать, как, например, передавать параметры в функцию и как возвращать обратно, ветвления массивы и т.д.


Комментарии (98)


  1. synka
    30.12.2021 12:10
    +14

     На данный момент закупил керамический конденсатор на 0,1 мкФ на 400 В, просто не доходят руки его поставить (всё стабильно работает и так).

    Нельзя ставить в сеть 220В конденсатор на 400В постоянного тока. Там могут быть киловольтовые импульсы. Вам нужно поставить конденсатора 0,1мкФ класса Х1, X2, c рабочим напряжением от 275В.


    1. dlinyj Автор
      30.12.2021 12:21
      +5

      Спасибо за пояснение. Но в сети у нас 230 В, и получается амплитудное значение 325 В. Если можно приведите пример конкретной модели, спасибо!


      1. interrupt
        30.12.2021 13:26
        +4

        Если он включен между сетевыми проводами (что скорее всего судя по емкости), то такой https://www.chipdip.ru/product0/9000549311

        Дело в том что в сети возможны переходные процессы и выбросы напряжения до киловольта, конденсатор должен их выдерживать.


      1. tbl
        30.12.2021 13:46
        +3

        Здесь есть подробное объяснение, что такое Class X, Class Y, какие классы применять, ссылки на пару сайтов производителей: https://www.allaboutcircuits.com/technical-articles/safety-capacitor-class-x-and-class-y-capacitors/

        В вашем случае нужен конденсатор класса X2 (можно заменить на X1, Y1, Y2, в обратную сторону замена не работает)


      1. SergeyMax
        30.12.2021 14:24
        +1

        Но в сети у нас 230 В, и получается амплитудное значение 325 В

        Для конденсаторов типа X2 указывается действующее номинальное напряжение, а не амплитутдное.


      1. engine9
        31.12.2021 02:53
        +1

        Желтенькая коробочка на входе любого промышленного ИБП от телевизора, компа, муз. центра и т.п.


      1. DMDKD
        31.12.2021 12:30
        +3

        В свое время писал эмулятор всего этого чемодана на С++, делал учебные стенды, много всякой информации было из учебного процесса. До сих пор используется в учебном процессе. Могу поискать, если интересно.


        1. dlinyj Автор
          31.12.2021 12:30

          Очень интересно!


          1. DMDKD
            31.12.2021 12:45

            А как с вами связаться? Ну или могу здесь небольшую статью написать, если интересно, про эмулятор этой штуки. Дипломная работа моя была.


            1. dlinyj Автор
              31.12.2021 14:09

              Написал личное сообщение.


      1. Youri2021
        31.12.2021 12:30

        Керамика по своему устройству хорошо пробивается. Нужна плёнка.


      1. Alexeyslav
        31.12.2021 14:32

        Дело в том что конденсатор рассчитанный под постоянку имеет меньшее значение пробивного напряжения на переменном токе, даже на 50Гц 400-вольтовые имеют малый запас для использования в сети. Специальные конденсаторы X2 для этих целей существуют, и у них важное свойство - при пробое просто отгорает часть конденсатора, но он не создаёт КЗ!


        1. tbl
          31.12.2021 21:52
          +1

          Class-X конденсаторы включаются между фазой и нейтралью, могут создавать кз при пробое, поэтому в дополнение к ним нужен предохранитель. Class-Y не имеют права создавать кз, чтобы фаза не ушла на корпус или низковольтную часть схемы.


    1. sim2q
      30.12.2021 17:25
      +3

      Он рванул не из за этого, а из за того ,что у них у всех этого типа есть проблема - собирается влагу из атмосферы. Читал об этом, а потом и сам столкнулся когда включил старую "люменку" долго лежавшую на балконе - красиво развернуло фольгу словно новогодний серпантин. Но в сеть конечно надо ставить специальные X2 как уже сказали или на 630V во избежание.


  1. Javian
    30.12.2021 12:16
    +1

    офф по К573РФ1 точно такой же вопрос https://qna.habr.com/q/43476


    1. dlinyj Автор
      30.12.2021 12:23
      +1

      И я там отметился. Но говорят, что их можно заменить другими, например:

      вместо РФ1 можно спокойно поставить РФ2/РФ5, просто использовать половинку.

      Отсюда. Но я бы смотрел в сторону флеш-памяти или SRAM с батарейкой.


      1. Javian
        30.12.2021 12:35

        Можно использовать две половинки этой ПЗУ - по необходимости переключая адресную линию.

        Гуглится, что эмуляция этих микросхем была восстребована при настройке ЭБУ автомобиля. Пример.


      1. sim2q
        30.12.2021 17:31
        +4

        Но я бы смотрел в сторону флеш-памяти или SRAM с батарейкой.

        Использовал *537РУ10 с электролитом в качестве переноса кода для отладки на Z80, всего-то нужно проследить что бы !CS оставался высоким.
        *кучи их статик со старых материнок.
        ps один полушуточный коммент про СССР на фоне десятков нейтрально-технических и теперь....раз в 5мин...


      1. Alexeyslav
        31.12.2021 14:40

        Кстати, прошивать-то их можно прямо в схеме средствами УМК, только на время "прошивки" подавать +21 вольт на вывод PGM.

        Аналогов микросхемы можно найти очень много, у меня их целая горсть валяется. Они все pin-2-pin совместимые, и в сокет большего объема можно ставить меньшую и наоборот - только обеспечить питание "висящих" выводов и зафиксировать адресные линии. Но обычно заменяется на 537РУ10/17 (2К и 8К объёмом) с припаянной сверху батарейкой и диодной развязкой.


        1. dlinyj Автор
          31.12.2021 22:13

          Можно чуть подробнее по диодную развязку?


          1. forthuser
            31.12.2021 23:38

            Это вроде просто для поддержания Вольтажа в точек от двух источников (добавочной батарейки на микросхеме и источника питания уже подающего напряжение в схеме стенда на ножку питания микросхмемы), земля «GND» или ноль «0» пpи измерении вольтметром у них общая.
            Как то так схематически,
            image

            Нагрузка здесь схематически — это «земля» «GND» и +5V напряжение питание микросхемы памяти.

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

            Из i-net цоколёвка микосхемы 537РУ10
            image

            P.S. Но, Вам действительно, проще добавить использование RS-232 (или Uart-USB) для связи с компьютером к схеме стенда т.к. микросхему памяти ешё нужно запрограммировать каким то программатором.


            1. forthuser
              01.01.2022 00:09

              ^ Схема выше из обсуждения этого топика (но там обсуждается в этой схеме использование аккумуляторa, а не батарейки что с заданным вопросом почти никак не связано)

              P.S. На Github, к примеру, по запросу «Z80 AVR» находится куча разных решений по добавлению «недостающего» функционала к Z80 для полноценного I/O отвязанного от каких то решений по использованию рекомендуемой элементной базе в связке с 580, Z80 процессорами. Можно даже тактировать (и инициировать прерывания) 580-того от AVR и соответcтвенно управлять всеми циклами обмена на его шине.


              1. dlinyj Автор
                01.01.2022 17:14

                Большое спасибо. Да, я хочу добавить СОМ-порт, но код для работы с ним тоже где-то надо хранить, следовательно, прошивать ПЗУ придется, ну или ОЗУ.


            1. Alexeyslav
              01.01.2022 20:38

              Её можно вбить прямо на стенде. И единственный момент - диоды шоттки здесь использовать нельзя, т.к. при работе батарейка через обратный ток таких диодов будет подзаряжаться(десяток микроампер), что в большинстве случаев выведет её из строя через некоторое время. Для использования RS-232 всёравно нужна прошивка в ROM, которой нет...


  1. Tzimie
    30.12.2021 12:28
    +3

    По моему у меня в ЛЭТИ была лаба на таком...


    1. lmapro
      30.12.2021 16:31

      И у нас в ИГЭУ


    1. FirsofMaxim
      01.01.2022 21:00

      ЮУрГУ 2000г 100% на таких были лабы.


  1. Croakerx64
    30.12.2021 12:33
    +4

    Это был первый и правда последний процессор, для которого я студентом делал интерпретатор под DOS на x86. Помню сложность была в том, что логика машинных операций немного отличалась от x86 и приходилось делать угадывая по документации без доступа к железу.


  1. goodic
    30.12.2021 12:43
    +5

    В "Бонче" на таком пару лабораторныйх делали. Методичек или чего-то такого с тех времен, увы, не осталось. Все что смог по памяти найти я тебе передал.

    На все вопросы по нему лаборант давал один ответ: "Читайте методичку"


    1. dlinyj Автор
      30.12.2021 15:41
      +2

      На все вопросы по нему лаборант давал один ответ: «Читайте методичку»


      Потому, что сами не знали ответов :)))


    1. Han7
      31.12.2021 12:30

      В Можайке в 90-тых на таких практические делали. Были для них и методички. Интересный чемоданчик. До сих пор вспоминаю с теплом.


      1. goodic
        31.12.2021 14:06

        Я в "Бонче" в 2006 этот чемодан щупал. И кажется, что в слоте расширения стояло что-то разработанное на кафедре. Писали мы программу которая сканировала входной поток и выдавала сигнал на определенную последовательность в сигнале. И плата как раз источником сигнала была. Но это не точно.


  1. MAXH0
    30.12.2021 13:21
    +1

    Вас ни где милиция с таким чемоданчиком не тормозила? То ли бомба, то ли вообще пульт управления ядерным щитом..


    1. dlinyj Автор
      30.12.2021 13:34

      Я не пробовал с ним разгуливать по городу. Просто от почты донес домой. Так что нигде не тормозила. Но вид, да, колоритный.


      1. Alexeyslav
        31.12.2021 14:42
        +1

        Обычный чемодан... когда-то с таким в школу ходил.


  1. museumrza
    30.12.2021 13:32

    Спасибо. Вы нечего не написали о весогабаритных параметрах, подскажите, пожалуйста, сколько этот чемоданчик весит?


    1. dlinyj Автор
      31.12.2021 14:32

      Специально сделал замеры и завесил.
      Размеры 46х37х13 см. Вес около 6 кг.


      1. goodic
        31.12.2021 15:08

        Внушительно. У меня ноутбук сейчас 1кг весит


  1. tormozedison
    30.12.2021 13:54
    +1

    "Единственная особенность книги, что данные приводятся не в шестнадцатеричном привычном формате, а в восьмеричном, что добавляет некоторые нюансы в понимании"

    В мире 1801 серии только так и делают. В мире 580 серии - никогда, за исключением этой книги.


    1. checkpoint
      30.12.2021 14:24
      +2

      Не в мире 1801, а в мире DEC PDP-11, клоном котрого 180x является. Вызвано это структурой системы команд (ISA), которая устроена таким образом, что бы команду не сложно было декодировть программисту просто глядя на светодиоды (восемь регистров, восемь методов адресации, и т.д.).


  1. forthuser
    30.12.2021 13:57
    +3

    Серия книг «МикроЭВМ»

    В седьмой книге описан и данный стенд

    image

    P.S. Левенталь Л. Введение в микропроцессоры: Программное обеспечение, аппаратное средству программирование.

    Можно, вероятно, и проапгрейдить учебный стенд до Z80,
    и запустить на нём и CP/M-80 по такому проекту RunCPM (но апгрейдить стенд придётся ещё существенней) ????


    1. dlinyj Автор
      30.12.2021 15:22
      +2

      В седьмой книге описан и данный стенд

      Не поленился, посмотрел. В этой книге моего стенда нет. Есть УМПК-80, а это совершенно другой стенд.


  1. GospodinKolhoznik
    30.12.2021 14:05
    +2

    Даже если устройство умеет только лишь мигать светодиодами, но при этом оно в крутом, стильном корпусе, то оно все равно крутое!


  1. sintech
    30.12.2021 14:14
    +3

    Я тоже както купил себе такой на авито, но в моем случае с блоком питания было все хорошо - напряжения в норме. А вот само устройство мигало лампочками в непрерывном цикле. Пока починить не удалось. Прошивка ПЗУ кстати считана и есть у тогоже С. Фролова.


    1. Shyster
      31.12.2021 17:35
      +1

      напряжения в норме. А пульсации? + Стабильность генератора тактовых импульсов.


  1. checkpoint
    30.12.2021 14:16

    Кто нибудь помнит как назывался аналогичный УМК с контроллером прерываний КР580ВН59 и таймером ВИ53 ? Выполняли на таких лабораторки в ВУЗе в конце 90х.


  1. shane54
    30.12.2021 14:48
    +2

    Если кто сможет из видео распознать hex и сложить в текстовый документ, буду очень признателен. Лично я сломался после первых 256 байт и часа ввода.

    Вроде звучит как достаточно лёгкая задача для распознавания с помощью OpenCV или подобных библиотек. Я сам далёк от всей этой темы, исхожу из того что читал. В данном случае же надо распознавать примитивный сегментный дисплей, а не породы котиков на ночном видео. Т.е. по идее это должно быть достаточно легко реализовать и получить достаточно надёжный результат, "без опечаток". Конечно, если опыта нет - лучше бы найти кого-то из единомышленников, кому и тема эта интересна, и чтоб "рука набита" на подобных задачах. Может даже можно записать целиком процесс (даже на телефон, закрепленый на штативе) и отправить этому "кому-то" просто видео (залитое на YouTube или в виде файла - тут уж исполнитель подскажет, как ему удобнее).


  1. vesper-bot
    30.12.2021 14:52

    Хм, только я прочитал на предпоследней фотке PY3dEC?


  1. MusokeSman
    30.12.2021 14:55

    У этого ядерного чемоданчика есть rs232 для работы с терминалом. мы эмулировали терминал на PC и получили возможность быстро загружать любой скомпилированный код, а не набирать его на клавиатуре.


    1. dlinyj Автор
      30.12.2021 15:00

      Он есть на отдельной плате расширения, которой у меня нет. А также, как я понимаю должна быть прошивка в ПЗУ. Но это в разы бы упростило все задачи.


  1. user0k
    30.12.2021 15:15
    +5

    Я делал почти аналогичное. Только был контроллер Z80. Один в один - шина адреса, шина данных. У меня были ещё исполнительные механизмы в виде реле. Это был мой дипломный проект.

    Писал я программу на чистом ассемблере. Год был 2000.

    Даже работало.


    1. dlinyj Автор
      30.12.2021 15:15

      Завидую, правда.


      1. Alexeyslav
        31.12.2021 14:59
        +1

        Когда задолбался переводить ассемблер в коды вручную, написал компилятор... ох время было. Почему не взял стандартные компиляторы? Да потому что они извратили систему команд в угоду студентам... оригинальная система мнемоник команд гораздо логичнее, но там "много слов учить". А та что стала стандартом, меньше слов но и меньше логики. Очень жаль, что эти мнемоники победили. Но теперь студентам меньше учить, ага.


    1. forthuser
      30.12.2021 15:32
      +1

      Делал производственное ПО на ИМ1821ВМ85А (аналог Intel 80С85А)
      у него однополярное питание и полная совместимость с 580. (добавлены пара команд),
      что интересно, чтобы ПО по функционалу заработало в требуемой «отзывчивости» пришлось отказаться от «супер-петли» и перейти на событийно управляемую структуру программы. (при том, что тактовая частота была 2,5 МГц. 16-ти сегментный буквенный люминисцентный индикатор, клавиатура и датчик оборотов и всё это было было в виде «сетевой структуры» с передачей собранных данных на ЭВМ по общему RS-232 при их опросе)

      P.S. Формат накопления данных был похож на HTML/XML о котором до эпохи i-net мне ещё ничего не было известно при придумывании похожего формата по сущности. :)
      Алгоритмы умножения чисел взял из книги рускоязычного автора, вроде, Гуртовцев А.Л «Программы для микропроцессоров»



    1. isden
      30.12.2021 17:03

      Я в свое время точно так же писал на бумаге ассемблер для Z80, и потом загонял его в zeus, сидя перед телевизором :) До сих пор помню тот толстенный справочник операций процессора.
      Это был мой первый серьезный проект — очень наивный архиватор.


    1. Alexeyslav
      31.12.2021 14:55

      Я правда потом переделал под случайно подвернувшийся ЖК дисплей, после того как сделал "прошивку" под него набирая код в RAM вручную. Уже даже хотел HDD подключить, но он меня не запускался из-за косяка по питанию, о чём я понял только гораздо позднее, когда это уже стало неинтересно - пошло время МК которые были элементарно быстрее этого процессора и имели прямо в чипе всю необходимую периферию.


  1. uuuuuuuu
    30.12.2021 15:23
    +1

    Надо попросить у Деда Мороза вики-энциклопедию по отечественной ВТ, со схемами и версиями ПО.
    Спасибо за интересную статью.


  1. Vsevo10d
    30.12.2021 17:25
    +2

    Удивительное устройство, хотя я далек от работы с микропроцессорами, и от эпохи этой машины тоже.

    Странно, что последнюю неделю я размышлял о проекте десктопного ПК в таком вот формфакторе кейса-дипломата, чтобы пришел, поработал, ушел. Ноутбуки немодульные и стоят свирепых денег, а полноценный, но портативный комп мне было бы очень удобно иметь для работы. И тут вижу эту статью, прямо как знак какой-то :)


    1. usa_habro_user
      30.12.2021 21:15
      +3

      Боюсь, что "модульный" десктоп в подобном форм-факторе обойдется вам дороже ноутбука, а в результате получится... тот-же самый ноутбук, но "самодельный и деревянный". И что это за работа такая, что для нее нужны ноутбуки, стоящие "свирепых денег" (читаем - "игровые")?


    1. engine9
      31.12.2021 02:57
      +1

      Меня терзает идея скрестить стренький ноутбук с мини-пк, чтобы работать в нём по сети через VNC. Может для вас такое решение тоже сгодится.


  1. KongEnGe
    30.12.2021 17:27
    +2

    Прикольный чемодан, но если не иметь предшествующего опыта писанины на ассемблере, может только отвратить от него. Когда к нам принесли такой на лабу в 92 году, только я со всей группы и знал, как по-быстрому битиками команду нащелкать и сделать что просили в инструкции, потому что до этого уже год на 580-м писал поделки.


    1. usa_habro_user
      30.12.2021 21:41

      Кстати, буквально об этом же подумал; такой дивайс интересен тем, кто "уже в теме", и понимает досконально, как все работает - тогда, возможно, подобный комплекс и выполнит свои цели расширения и углубления понимания. Но, боюсь, что для основной масы студентов это был лишь скучный непонятный чемодан, а "лабораторки" катали друг у друга, не понимая, что к чему.

      P.S. Любопытно, что это был, если не ошибаюсь, 1986 год, т.е. когда не только западные "персоналки", с цветными дисплеями, звуковыми платами etc., недоступные в СССР, но и даже отечественные "Радио 86РК" и клоны "ZX Spectrum" уже "пошли в массы".


    1. Alexeyslav
      31.12.2021 15:03

      Аналогично, только дело имел с Z80 у которого система команд просто шире чем у советского аналога, а в остальном совпадает 1-в-1. Не могли поверить... многие только начинают разбираться с заданием лабораторки, а у меня уже код готов... списал? да это же просто как 2+2...


  1. sim2q
    30.12.2021 18:23
    +1

    Хотя писал на ассемблере для AVR, C51, x86, чуток для ARM. Но тут смутило, что всё делается через один регистр, что немного напрягает.

    А у меня на AVR asm после Z80 как раз наоборот был шок - где аккум?!!)
    ps есть коллекционный - "жёлтый", в фиолетовой керамике аналог (из СЭВ CM603) serial I/O МС6850, он вроде как даже проще чем 8251 (580ВМ51), всего 4 регистра
    https://scask.ru/d_book_ps.php?id=257 - описание со схемой и примером кода для ВМ80
    Но думаю автор врядли заморочится:) Хотя встречал на форуме, что юзают и программируют наши умельцы для самодельных компов.

    О CM603...


    1. forthuser
      30.12.2021 18:42
      +2

      А, есть же ещё и PIC контроллеры так в них с аккумулятором свои «причуды» по использованию.

      P.S. STM8, вроде, идеалогически близок 580, хотя дизайн архитектуры 6502 ещё более минималистичeн.
      А, MSP430 вообще вдумчиво сделана вдохновлённая PDP-11.
      Ну и не стоит забывать про наследие 68K.

      Если использовать Форт с контроллером, то аккумулятор не особо и будет мешать её реализации.
      Как пример одной из многих реализаций Форт для 580 MFORTH
      image

      Здесь один из «последних» Форт для Z80 CP/M DX-Forth


      1. CyberSkur
        31.12.2021 18:28
        +1

        Вам и вашему примеру большое СПАСИБО! Тоже хороший подарок к НГ2022 - прозрение.

        Так получилось, что я впервые таки увидел как работает программа Forth`a. Что за язык такой давно интересно. Но вот она классика: арифметика и вывод. Идеально изящно! Работает. )))


    1. dlinyj Автор
      31.12.2021 14:26

      Я только сейчас внимательно прочитал ваш комментарий! А есть ли более подробная документация к нему? Пока думаю как лучше сделать СОМ-порт и на чём.


      1. Alexeyslav
        31.12.2021 15:08

        вроде комплект на 580ВВ51 делается элементарно с подключением к шинам адреса и данных, но этот UART не имеет собственного тактового генератора! Поэтому в схему надо добавить таймер 580ВИ53 один из каналов которого подключен ко входу ВВ51 и тактовый генератор для самой 580ВИ53 вроде на 3.5Мгц. Потом считать коэфициенты делителей, чтобы из этой частоты получить нужную битовую скорость с минимальной погрешностью.


      1. forthuser
        31.12.2021 15:53
        +1

        Хорошая книга
        Коффрон Дж… Расширение микропроцессорных систем

        P.S. Табличка по системе команд Z80 у меня была срисована с книги
        М.Рафикузман «Микропрцессоры и машинное проектирование микропроцессорных систем» М «Мир» 1988 2 тома


  1. CoolCmd
    30.12.2021 19:07
    -7

    У меня на руках Учебный Микропроцессорный комплект, производства завода VEF

    был у меня телефон этого завода, кнопки точь в точь как у чемодана.
    и книга была желтенькая. выбросил за ненадобностью.
    вообще не понимаю такого трепетного отношения к подобной примитивной технике. для обучения наверное хороший вариант, но сейчас что с ней делать? если интересует программирование, то возьмите любой эмулятор спектрума. там такой же 8080, только улучшенный. в качестве бонуса — нормальный транслятор asm с более вменяемыми мнемониками команд.


  1. vadimk91
    30.12.2021 20:49
    +2

    накрутки на контакты, как самый надёжный способ соединения (более надёжный чем пайка)

    Подобные способ монтажа применялся и промышленных устройствах. Однажды пришлось ремонтировать "советский напольный принтер" - АЦПУ ЕС-7030. После нескольких часов стояния в несколько неудобной позе (электронные платы были смонтированы в самом низу устройства) нашлась причина: коммутация на разъемах была выполнена методом накрутки, подвел не плохой контакт, а протершаяся (видимо, от вибрации при работе АЦПУ) изоляция провода. Я сейчас конечно точно не вспомню, но там было десятка три плат, и каждая на разъеме на два десятка контактов минимум - адский ручной труд для монтажа.


    1. SignallerK
      30.12.2021 22:08
      +3

      На пром производстве их вроде специальными "пистолетами" крутили. Так что труд не то что бы адский, но накрутить сотни контактов наверное было не просто.


    1. Sartorio
      31.12.2021 14:59
      +1

      Я сейчас конечно точно не вспомню, но там было десятка три плат, и каждая на разъеме на два десятка контактов минимум — адский ручной труд для монтажа.

      Существовал специальный инструмент для монтажа накруткой, очень похожий на современный шуруповёрт, с особым наконечником и провод «витая пара» для этих целей.
      Провод просто вставлялся в паз, наконечник устанавливался на контакт нажималась кнопка и готово. Скорость монтажа была в несколько раз выше чем при ручной пайке.
      Практически все ЕС ЭВМ ряда 2 были выполнены в стойках таким образом, при меж ТЭЗном монтаже. (ТЭЗ-типовой элемент замены)


  1. usa_habro_user
    30.12.2021 21:34
    +2

    Даже снял кинцо, как я вводил программу

    Ну, ввод с клавиатуры - это уже вполне ОК, "технологично". А мне вспомнилось, как приходилось вводить код программы-загрузчика (с перфоленты) в одну из старых ЕС-ок (по-моему, 1022) кнопками, каждая из которых отвечала за... один бит команды (также нужно было вводить и адрес загрузки, но он, если не ошибаюсь, инкрементировался автоматически). Т.е. набирался код микрокоманды, нажималась другая кнопка, команда отправлялась в память. А еще там были весьма тугие тумблеры. Короче, пока запрограммируешь - как экспандером поработал.


    1. juray
      01.01.2022 03:07
      +2

      В СМ такое было,

      например, в процессоре СМ-2420
      image


      А в ЕС-1022 не тумблеры были, а кодирующие переключатели в 5 разрядов и галетники.
      Картинка
      image


  1. drWhy
    31.12.2021 00:23
    +2

    Накрутки на контактах четырёхрядных разъёмов видел ни хроматографах Ижевского завода четверть века назад — четыре платы, несколько сотен контактов, всё Ok, пока хроматограф не поработал на металлургическом комбинате — из цеха в лабораторию заносило загрязнённый воздух. В итоге все накрутки охрупчились и рассыпа́лись при первом прикосновении.


  1. nixtonixto
    31.12.2021 07:51
    +3

    Если кто сможет из видео распознать hex и сложить в текстовый документ, буду очень признателен. Лично я сломался после первых 256 байт и часа ввода

    Как-то слишком быстро вы сдались, в годы актуальности этого компьютера вы бы не стали программистом. Вот так я программировал АТ89С51 самодельным программатором без компьютера — пока после одной из программ не заплатили столько, что хватило на покупку старенького ноутбука на Р-2-266. На нём пересел на AVR. Распознать хекс по видео могу, если это имеет какую-то ценность для сообщества, а не нужно только вам.
    image


    1. dlinyj Автор
      31.12.2021 11:50
      +1

      Как-то слишком быстро вы сдались, в годы актуальности этого компьютера вы бы не стали программистом.

      Забавные выводы. Если бы от этого зависел мой хлеб, то я бы доделал до конца, а тут непонятен смысл.

      Распознать хекс по видео могу, если это имеет какую-то ценность для сообщества, а не нужно только вам.


      Сообщество УМК столь малое, что мы все друг друга знаем в лицо :). А так, в целом если бы мне прям очень нужно было бы, я бы потратил час на перенабор.


  1. user2010
    31.12.2021 11:55
    +4

    Ты будешь плакать! Но ПЗУ мы прошивали на ручном программаторе, тумблерами набирая по очереди комбинации каждого бита, потом нажимали кнопку записать, и переходили к следующей строчке! Всего неделя, две, штук 5-10 испорченых микросхем, и если без ошибок!! Если микросхема не стерались ультрофиолетом! С моим менталитетом смотреть в таблицу и щелкать тумблерами я не мог, постоянно ошибался! Но был очень флегматичный друг, ему удалось!


    1. dlinyj Автор
      31.12.2021 12:04

      В той книжке вначале поста, предлагалось программу монитор зашить в ПЗУ именно так, так что плакать не буду и представляют зачем это.


      1. Alexeyslav
        31.12.2021 15:32

        Её зашить можно прямо в УМК, вроде бы так. Возможно, понадобится просто на вывод PGM ПЗУ-хи отдельным тумблером подать 21 вольт - признак разрешения записи.


    1. xxxgoes
      31.12.2021 13:02
      +1

      Еще существовал очень редкий зверь: ППЗУ 815
      Мог прошивать разнообразные РФки. С кнопок, клонированием, с ЭВМ (опция)


  1. d2d8
    31.12.2021 12:03
    +2

    Видео распозналось легко, но не проверял на ошибки.

    http://sendfile.su/1632344


    1. dlinyj Автор
      31.12.2021 12:18

      Потрясающе, грандиозное спасибо!


    1. cepera_ang
      31.12.2021 15:22

      Интересно чем? Навскидку натравленный тессеракт выдал чистый мусор.


      1. d2d8
        31.12.2021 15:56
        +1

        Примитивная нейронка, символов всего 16, картинка статична, датасет для обучения нужен небольшой и обучение быстрое.

        Уже после вбил в гугель вопрос и первой ссылкой выпало сие https://github.com/upupnaway/digital-display-character-rec, но не пробовал.


        1. rifin
          01.01.2022 19:50

          Круто конечно. Но по моему это убийство воробья из трехствольной пушки линкора.))

          ТС лентяй! подключил бы ардуинку на шины ,да слил бы все.


  1. kkolomytse
    31.12.2021 12:03
    +3

    В этом семестре делали лабораторные работы на точно таком-же УМК) Правда плата расширения немного отличается

    Левая часть совпадает, а вправая нет
    Левая часть совпадает, а вправая нет

    У меня есть методичка к этой плате. Там лабораторные по таймеру, ЦАПу и АЦП, светодиодам и семисегментному индикатору. Если нужно, могу поделиться этой методичкой.


    1. dlinyj Автор
      31.12.2021 12:03
      +1

      Очень нужно, буду очень-очень признателен!


      1. kkolomytse
        31.12.2021 12:29
        +2

        Залил методичку на яндекс диск. Вот ссылка https://disk.yandex.ru/i/o0DP3ltSyHb2nQ


        1. dlinyj Автор
          31.12.2021 13:45
          +1

          Громадное спасибо!!!


  1. alexmv2017
    31.12.2021 12:03
    +2

    Спасибо за статью! Вспомним школьные и студенческие годы когда программировал на 8080 и z80!)


  1. engine9
    31.12.2021 13:33
    +1

    Я просто рад от того, что вас "прёт" от темы и вы нашли такой артефакт. Вспомнил свою юность как я изучал 3Д Макс по книге, не имея компа :)

    Зато, потом, когда сел за него сразу смог работать и это был удивительный опыт.


  1. F0iL
    31.12.2021 13:54
    +2

    У нас в УГАТУ еще в 2000-х были лабы на УМПК-80, да.


    1. dlinyj Автор
      31.12.2021 14:08

      Это чуть другой аппарат, хотя и схож архитектурно.


  1. SilverHorse
    31.12.2021 16:05
    +3

    О боги, у меня аж олдскулы свело и флешбеки времен второго курса универа нахлынули... Спасибо за дозу ностальгии)

    В 2009 году на лабах по основам схемотехники я на этом самом "чумадане", как мы его называли, писал байткодом "метроном" (сигнал "бегает" по линейке светодиодов на плате расширения с заданной частотой, период вбивается как переменная), "таймер" (обратный отсчет двоичными числами с 63 до 0 с частотой 1 Гц) и еще что-то из подобного, самая длинная программа занимала вроде пять тетрадных листов. Идеальная иллюстрация того, насколько просто можно написать что-то, реализующее низкоуровневый функционал дешевого китайского будильника. Правда, реальный интерес этот "чумадан" вызывал у меня одного из всей группы... А еще у нас была макетная плата с распаянными на ней микросхемами с элементарной логикой (RS-триггеры, логические И, ИЛИ, НЕ, генератор частоты, семисегментники и так далее), на которой мы проводками собирали простейшие схемы, там я тоже делал "часы", которые укладывались ЕМНИП всего в 17 элементов, и даже нормально работали. Только перед этим пришлось сидеть два часа с паяльником и напаивать концевики на эту прорву проводков.

    Могу выложить фото программ, тетрадка еще сохранилась вроде, только вот повторить не выйдет, раз у вас платы расширения нет.


    1. forthuser
      31.12.2021 17:42
      +1

      Идеальная иллюстрация того, насколько просто можно написать что-то, реализующее низкоуровневый функционал дешевого китайского будильника.

      Можно и гораздо больше, чему пример работющей ОС KolibriOS.

      P.S. У самого тоже где то, вероятно, сохранился или нет листок с программой от «аналогичной» лабы, но забавный случай с её сдачей произошёл.
      Переписывая код на лист бумаги перевернул его не справа-налево, а сверху-вниз и продолжил его заполнять листингом кода.
      Заметил эту ошибку уже когда программа была записана, и переписывать уже повторно не было желания. Пошёл её сдавать в таком виде, и сказал преподователю о таком произошедшем казусе, на что он ответил, что главное не форма, а содержание и зачёт был получен. ????

      Методичка по иллюстрации перехода в лабах от Ассемблера к Форт, на базисе PIC контроллеров, как более эффективного программирования их без ещё использования Си:
      Алпатов Г.Р. Применение PIC-контроллеров в измерительной технике