Внимание! Это временный неофициальный архив старой версии форума Полигон Призраков, созданный сочувствующим форуму участником. Этот сайт просуществует лишь до тех пор, пока администрация Полигона не сдержит своё обещание и не откроет официальный архив по адресу old.sannata.org.

Полигон-2

Форум о старых компьютерах

Объявление форума

Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС.

Полигон-2 »   Калькуляторы, арифмометры, PDA, HPC »   Самодельный калькулятор в корпусе Б3-23
RSS

Самодельный калькулятор в корпусе Б3-23

На Н1806ВМ2

<<Назад  Вперед>> Страницы: 1 2 3 4 * 5 6 7 8 9 10
Печать
 
xoiss
Гость

Ссылка

MM написал:
[q]
[/q]
В общем, к понедельнику успел сделать не всё, но бОльшую часть.

Исходные коды проекта — здесь: https://github.com/xoiss/b3-23

"Проект" — это в данный момент чисто код на Си, реализующий что-то вроде симулятора Б3-23 в виде консольного приложения.

Проект состоит из трёх компонент:
- миниатюрное консольное приложение — ждёт ввода от пользователя, печатает результат работы в консоль и так далее, пока пользователь не закроет сеанс
- адаптер — адаптирует программный код симулятора (следующая компонента) к консольному мини-приложению, отвечает также за "отображение" регистра индикации
- и собственно сам "симулятор" — это вся алгоритмика калькулятора, которая суть умеет воспринимать события "нажатие клавиши" и считать

Компонента "симулятор" — вот конкретно её код: https://github.com/xoiss/b3-23/blob/master/simulator-b3-23.c
Эта компонента написана на ANSI C, и не использует никакие системные библиотеки.
Таким образом, она должна без проблем восприниматься большинством компиляторов Си — ну, во всяком случае, теми, что вышли после 1989 года.
// конечно, в особо изысканных случаях проблемы могут быть, но это надо предметно смотреть

Для того, чтобы на основании этого барахла сделать собсна калькулятор — будь то н1806вм2 или какой другой — необходимо следующее:
1. Железка с процессором, памятью, кнопками и индикатором. Минимальные требования я бы оценил так: примерно 2 кБ ПЗУ и около 64 байт ОЗУ. Клавиатура и индикатор - такие же, как у Б3-23
2. Какая-то минимальная "операционная система" на железке. В принципе, таковая как класс не обязательна, если все порты ввода-вывода будут напрямую доступны приложению (см. п.3 далее)
3. Переделать компоненту "миниатюрное консольное приложение" — т.е. нужно сделать специальное приложение, которое будет теперь уже не в консольном окошке на персоналке работать, а на вот этой железке. Эта компонента должна: (1) сканировать клавиатуру, фильтровать дребезг контактов, формировать код нажатой клавиши, (2) сканировать разряды индикатора, перекодировать коды цифр в 7-сегментные коды, зажигать сегменты индикатора. Часть этого функционала может быть выделена в некое подобие BIOS или OS (см. п.2), хотя это может быть и монолитное приложение
4. Незначительно переделать компоненту "адаптер" — ну, здесь скорее косметические изменения потребуются
Вот. И главное — компоненту "симулятор" переделывать НЕ требуется, т.к. она вообще никак не зависит от того, на какой платформе ей предстоит работать.

Если речь идёт вот именно о н1806вм2, то в принципе у меня лично есть:
1) компилятор языка Си для ДВК / УК-НЦ — наверное, им можно воспользоваться с целью, как минимум, перевести код компоненты "симулятор" на ассемблер с системой команд DEC PDP-11
2) некоторые остаточные знания системы команд (машинных инструкций) DEC PDP-11
3) опыт работы с периферией на УК-НЦ... правда, было это в 90-х

Что дальше?
1. Мне нужно ещё немного доделать сам симулятор. Сейчас он полностью реализует такие "фишки" Б3-23 как цепочки вычислений, вычисления с константой, сброс, ошибка переполнения, плавающая запятая, отрицательные числа. Из функций сделаны и отлажены сложение и вычитание. Не сделаны умножение, деление и вычисление процентов.
2. Нужно конкретное понимание, что из себя будет представлять "железка". Если это вот чисто калькулятор - ок. Но если это нечто большее, с дополнительными "некалькуляторными" функциями, то... надо обсуждать. В принципе, если на железке будет а-ля RT-11, а приложение калькулятора будет запускаться просто как SAV-файл, то тогда можно будет весь проект целиком попытаться Си-шным компилятором собрать
3. Как промежуточный вариант, можно попробовать вот всё это приложение допилить под ДВК в текстовом (консольном) режиме — и попробовать его на ДВК / УК-НЦ запустить с дискетки.


Пример диалога, как это сейчас выглядит:

// желающим воспроизвести потребуется Linux, ну или Windows + MinGW + MSys
Сейчас на форуме
MM
Advanced Member


Откуда: Павловский Посад Мск.обл.
Всего сообщений: 3418
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
2 авг. 2013
Уважаемый xoiss, спасибо за поддержку проекта.
Софт по любому следует делать для размещения в ПЗУ с 000000 адреса, ориентироваться на 8 кбайт ППЗУ ( 1801РР1 ).
Если сложно с 8 кбайтами, можно раздуть и до 56 кбайт, так же с 000000 адреса по 157776 ( модуль ЭСППЗУ ).
Если именно на КР537РУ11, возможно стоит разместить её массив СОЗУ с 170000 адреса длиной 001000.

Пока дело исключительно в отсуствии желающих сделать топологию ДПП.
*
Какой софт может быть, для варианта "программируемый 8-ричный контроллер" :
1. Подпрограмма вывода на индикатор АЛС318 строчки кодов символов из СОЗУ , 9 кодов и положение точки ( точек ).
Она же и сканирует клавиатуру на предмет нажатия кнопки.
2. Простенький интерпретатор действий пользователя - полистать СОЗУ/ПЗУ/Регистры, заменить значения слов/байтов, в т.ч. регистров ЦП, запусить с адреса.
3. Подпрограмма индикации слова/байта и его адреса - 3 символа - адрес, и 6 символов - данные.
4. Возможно, как-то применить озвучивание действий пользователя, особенно для варианта с 56 кбайт текста, на 4-битый ЦАП.
Ну может даже какой-нибуть ЭМИ разработать, можно и на полном ходу 5 мгц Н1806ВМ2 ( 1 млн рег-рег )- он весьма скромный по аппетиту, даже холодный.
xoiss
Гость

Ссылка

MM написал:
[q]
Софт по любому следует делать для размещения в ПЗУ с 000000 адреса, ориентироваться на 8 кбайт ППЗУ ( 1801РР1 ).
[/q]
MM написал:
[q]
Если именно на КР537РУ11, возможно стоит разместить её массив СОЗУ с 170000 адреса длиной 001000.
[/q]
ну, скажем так, я знаю, как это (описание страниц доступной памяти) сделать в линковщике gcc (формат линкерного файла SVR4 "System V R4")
но я пока не знаю, как это сделать в компиляторе Си для ДВК / УК-НЦ... и вообще можно ли там такое сделать
надо читать прилагаемую мануалку, либо кто-нибудь пусть подскажет, как это сделать

код (адреса перехода и пр.), насколько мне известно, ДВКшный компилятор Си (равно как и компилятор Паскаль) делает полностью перемещаемым
поэтому не принципиально, с какого адреса он в итоге будет размещаться в памяти (если с 000000 - ну, значит так)

8 кбайт ПЗУ — если не использовать printf/scanf и пр. ненужности, то, думаю, должно хватить


MM написал:
[q]
Какой софт может быть, для варианта "программируемый 8-ричный контроллер" >...>
[/q]
... ну, эммм, давайте пока пойдём по минимальному варианту — хотя бы его осилить бы
максимум если только с добавлением вот этого:

SL project написал:
[q]
Возможно ли реализовать что при включении калькулятора загорается не сразу 0, а бегущая строка что то по типу PDP-11 CALC или CPU H1806 CALC а только потом загорается 0 и калькулятор переходит в режим вычиcлений.
[/q]
// да, такое возможно реализовать... в т.ч. и с эффектом "бегущей строки"


MM написал:
[q]
Пока дело исключительно в отсуствии желающих сделать топологию ДПП
[/q]
сами разведите! :)
оставьте самый минимальный набор компонентов — только то, что действительно необходимо
Сейчас на форуме
svinka
Advanced Member
Сеньор

Откуда: Совчина
Всего сообщений: 1585
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
25 июня 2016
Вообще-то тема не про калькуляторsы а про PDP-11
MM
Advanced Member


Откуда: Павловский Посад Мск.обл.
Всего сообщений: 3418
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
2 авг. 2013
xoiss написал:
[q]
код (адреса перехода и пр.), насколько мне известно, ДВКшный компилятор Си (равно как и компилятор Паскаль) делает полностью перемещаемым
поэтому не принципиально, с какого адреса он в итоге будет размещаться в памяти (если с 000000 - ну, значит так)
[/q]
Разрешите напомнить, уважаемый господин xoiss, что стандартный MACRO.SAV не может предоставлять такие роскошные фичи без известного усердия кодера, насчет Паскаля ---> 99.9% что это так.

Вообще, пока не будет топологии ПП, физически привязывать софт к железу рановато, т.к. есть небольшая вероятность, что будет RT-11 совместимый кальк с не менее 32 кбайт СОЗУ и 24 кбайт ПЗУ ( а возможно и поболее ПЗУ ).

Для написания софта посоветую эмулятор ДВК господина Патрона и стандарные средства RT-11 V5.00 - EDIK.SAV, MACRO.SAV, LINK.SAV, DESS.SAV. Насчет Паскаля - нет уверенности, что его "резиновые" билиотеки смогут работать в ПЗУ.
Отмечу, что стандартный файл типа .SAV создается как раз для загрузки с 000000 адреса, с рабочим телом кода с 001000 адреса.
Стек и переменные следует размещать в массиве адресов КР537РУ11.
xoiss
Гость

Ссылка

svinka написал:
[q]
Вообще-то тема не про калькуляторsы а про PDP-11
[/q]
... ну, вообще-то как раз про калькуляторы :)


MM написал:
[q]
физически привязывать софт к железу рановато
[/q]
да, я в общем как раз и не тороплюсь
допишу - протестирую на персоналке - потом попробую на ДВК перетащить (да, вот как раз эмулятором воспользуюсь) - заодно посмотрю имеющийся у меня Си-шный компилятор для ДВК
если в таком варианте взлетит, то ... ну, как минимум положу в архив до тех пор, пока будет определённость с железкой

вот

что касается железки — то я всё-таки ещё раз предлагаю взвесить все моменты

ключевое, как я понял, сейчас - это даже не плату развести, а таки выбрать, что в ней будет, а чего не будет
если перечитать тему от начала и до крайнего сообщения, то я вижу довольно много неопределённостей...
... из которых, пожалуй, главная — это будет ли там RT-11 или нет (а ведь от ответа на этот вопрос схема и плата железки зависят радикально)
... и вторая по величине неопределённость — какое будет ПЗУ: ЭСППЗУ или просто ПЗУ (УФПЗУ)

у меня есть сильное опасение, что: Если не определиться с этими вопросами, То проект останется на стадии "написания технических требований/характеристик"

и второе моё опасение: Если, даже определившись, включить таки в проект слишком много всего, То либо (а) будут "железячные" баги, и плату придётся 2-3 раза доводить/переделывать, либо (б) это останется "платой с микросхемами" без операционной системы, т.к. некому будет её адаптировать/портировать, либо в лучшем случае (в) какие-то базовые функции этого устройства удастся поднять, но остальные так и останутся недотянутыми

моё предложение — сделать *минимальную* аппаратную конфигурацию:
- ПЗУ использовать "обычное" — программатор и импортные РФки сейчас несложно найти (а можно и флеш поставить)
- RT-11 туда не тащить, т.к. это за собой потянет массу проблем
- поставить минимальное (по современным меркам, конечно :) ) статическое ОЗУ — я бы сказал, пропорция 16/48, как у Спектрума, вполне себе норм. (ну, можно джамперами объём ПЗУ выставлять 4-8-16 — а остальное, чтоб ОЗУ было видно)
- периферия — только клавиатура и 7-сегментный индикатор — отобразить их на несколько регистров — и сделать это *без* системы прерываний (всё равно там нечего прерывать)
- всё! больше ничего не делать. даже шину на краевой разъём не стоит вытаскивать — лишнее это!

в моём понимании - это ещё ну хоть как-то в обозримом будущем можно осуществить, с учётом общей занятости всех потенциальных участников
если это взлетит, если будет рабочий образец в чистеньком корпусе от Б3-23 — уверен, степень заинтересованности широкой аудитории резко вырастет — возможно, подтянутся ещё энтузиасты, что немаловажно
и если так, то тогда уже можно будет подумать о чём-то более продвинутом — например, в корпусе от МК-52... ... ... с доп. функциями, с интерфейсами и пр.
// ну, я так думаю
Сейчас на форуме
MM
Advanced Member


Откуда: Павловский Посад Мск.обл.
Всего сообщений: 3418
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
2 авг. 2013
xoiss написал:
[q]
выбрать, что в ней будет, а чего не будет
[/q]
Минимальная схема электрическая принципиалная - несколькими постами выше.
Состав :
М1801РР1 , адреса 000000 - 017777, или модуль ЭСППЗУ с адресами 000000-157777 ( 56 кбайт )
КР537РУ11, адреса ( вероятные ) - 170000-170777
В чем польза минимальной конфы :
1.Работоспособность.
2.Возможность разместить на ДПП
3.Дешевизна китайских ДПП
4.Относительная дешевизна всего конструктива ( мало ИС ).
xoiss
Гость

Ссылка

MM написал:
[q]
Состав
[/q]
Хорошо. База понятна.


MM написал:
[q]
Минимальная схема электрическая принципиалная - несколькими постами выше.
[/q]
Да, посмотрел.

Есть несколько вопросов/предложений (я нисколько не настаиваю на них, но у меня есть основания, чтобы это обсудить):
1. В схеме часть микросхем показаны как серия 133. Это действительно должна быть именно 133-я? или обязательно именно ТТЛ? или там может быть КМОП?
2. Если в общем замена на КМОП допустима, то допустима ли замена на КМОП цепочки элементов DD6:B, DD6:C?
3. Обязательно ли делать монтажное ИЛИ на элементах DD4:A..DD5:F и резисторе R3? Можно ли это заменить обычным элементом ИЛИ?
4. Предлагаю отказаться от цепочки R14, D8 и R16, Q1. Использовать готовый "супервайзер". На нём же можно и генератор X1 реализовать.
5. Предлагаю узел Q2, ZP1 (я так понял, что это "крякалка", чирикающая при нажатии клавиши) сделать управляемым от процессора.
6. Предлагаю узел сканирования клавиатуры и динамической индикации сделать автономным. Да, для этого потребуется сколько-то дополнительных микросхем, но в этом есть смысл — зачем, см. далее.
7. ... пока, вроде, всё, но, может быть, что-нибудь ещё на ум придёт

В чём собственно суть вышеперечисленных пунктов?
Причина - одна: снизить потребляемый ток. Это напрямую влечёт п.п. 1, 3, 4 и отчасти 5.

По пункту 6:
Если сделать аппаратный узел, который сам будет осуществлять динамическую индикацию, то тогда не придётся гонять ЦПУ, делать выборку из памяти и пр. просто, чтобы вновь и вновь отобразить на экране "нолик" или продолжительно-неизменный результат вычислений. Если к тому же сделать и аппаратный узел сканирования клавиатуры, то вкупе это позволит преобладающее время держать процессор остановленным.

Подскажите, пожалуйста, для процессора 1806ВМ2:
1) есть ли у него какой-нибудь режим, когда он действительно ничего не делает (остановлен)? Если есть, то какой командой (инструкцией) он в него входит? Может ли он выходить из него по запросу прерывания от внешнего источника?
2) ... в продолжение п.1 — если такой вот прям инструкции нет, то можно ли ЦПУ ввести в такой режим манипуляциями с линиями DCLO, ACLO? Но так, чтоб потом вывести ЦПУ из этого режима без потери состояния. Я что-то помню, что эти сигналы, вроде, прерывания какие-то формируют... Но что они делают на самом деле, я не в курсе.
3) можно ли в процессе работы (а) снижать тактовую частоту процессора (если да, то до какого предела?), или (б) можно ли останавливать внешнее тактирование на произвольное продолжительное время и потом возобновлять тактирование? Ну, чтобы таким образом искусственно переводить процессор в режим сна. // внешнее ОЗУ - статическое
Сейчас на форуме
MM
Advanced Member


Откуда: Павловский Посад Мск.обл.
Всего сообщений: 3418
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
2 авг. 2013
xoiss написал:
[q]
показаны как серия 133
[/q]
Приношу извинения, следует использовать серию ЭКФ1564, кроме разве что 1533ИД10 - простой замены в Москве найти не удалось, всё под заказ по конским ценам. Если ~10 ма критичны - то следует поискать и ЭКФ1564ИД10 ( у китайцев ).
*

xoiss написал:
[q]
допустима ли замена на КМОП цепочки элементов DD6:B, DD6:C?
[/q]
Да, можно вообще на RC цепочку, с временем задержки порядка 50 нс.
*

xoiss написал:
[q]
Предлагаю отказаться от цепочки R14, D8 и R16, Q1.
[/q]
Я использую только проверенные решения с Определенными параметрами. Времени заниматься посторонними НИИР у меня не особо.
*

xoiss написал:
[q]
Предлагаю узел Q2, ZP1 (я так понял, что это "крякалка", чирикающая при нажатии клавиши) сделать управляемым от процессора.
[/q]
Куда уж более - сидит на порте ВВ55А, проц как раз и управляет ей.Если насчет питания - надо приделывать доп. элементы. На фоне потребления индикатора - порядка 50 ма, дополнительные ~3 ма малозаметны. Особенно, если добавить общее потребление вычислителя - еще не менее 50 ма. ( 1 мгц тактовой ). Можно, конечно, сделать усилок на 1 элементе ЛН1 и 2 резисторах и 2 конденсаторах. Но свои ~3 ма он, боюсь, отожрет...
*

xoiss написал:
[q]
Предлагаю узел сканирования клавиатуры и динамической индикации сделать автономным. Да, для этого потребуется сколько-то дополнительных микросхем, но в этом есть смысл — зачем, см. далее.
[/q]
Для ДПП это малореально, ввиду чрезмерного ограничения места ( к-ва компонентов ). А для 4СПП и 2-стороннего размещения ИС
- можно что-то приделать.
*

xoiss написал:
[q]
какой-нибудь режим, когда он действительно ничего не делает (остановлен)?
[/q]
После команды WAIT , код - 000001, при 000000 приоритете процессора, до поступления прерывания от таймера ( 100 вектор ) или многопроцессорного механизма ( 250-й вектор ). Именно 1806ВМ2 полностью статичен и допускает еще и снижение тактовой часты до 0 гц ( но это лучше не делать, можно снизить частоту хотя бы до 1 кгц , что бы не допустить зависания М-ЭВМ ).
*
Вообще, именно Н1806ВМ2 Чрезвычайно холодный процессор, речь идет примерно о 1.5 порядках снижения потребления при одинаковом с 1801ВМ2 быстродействии, например 0.5 млн ( 2.5 мгц 1806ВМ2 ) ~30 ма для 1806ВМ2. При останове тактовой в 1806ВМ2 потребление определяется течкой, и может составить порядка 1 ма.
svinka
Advanced Member
Сеньор

Откуда: Совчина
Всего сообщений: 1585
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
25 июня 2016
MM написал:
[q]
в 1806ВМ2 потребление определяется течкой, и может составить порядка 1 ма.
[/q]
по паспорту до 5ма при комнатной температуре

Динамическое потребление +80ма при тактовой 5мгц
<<Назад  Вперед>> Страницы: 1 2 3 4 * 5 6 7 8 9 10
Печать
Полигон-2 »   Калькуляторы, арифмометры, PDA, HPC »   Самодельный калькулятор в корпусе Б3-23
RSS

1 посетитель просмотрел эту тему за последние 15 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
[Москва] LIQUID-Акция. Сливаются разъемы CF
МС7004 и 7004А на AT и XT
Пайка термотрубок
Проммать s478 PEAK 715VL2-HT ( Full-Size SBC)
Подскажите по 386 материке по джамперам.

Самые активные 5 тем RSS