Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » Калькуляторы, арифмометры, PDA, HPC » Самодельный калькулятор в корпусе Б3-23 |
<<Назад Вперед>> | Страницы: 1 2 3 4 * 5 6 7 8 9 10 | Печать |
xoiss |
Сообщение отправлено: 14 октября 2018 13:00
а мы всё-таки попробуем! |
Сейчас на форуме |
MM
Advanced Member
Откуда: Павловский Посад Мск.обл. Всего сообщений: 3418 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 2 авг. 2013 |
Даташит на некотрый аналог 1002ХЛ1 : http://radio-hobby.org/uploads/datasheet/47/cdp6/cdp6402.pdf Есть ли где пример сопряжения ХЛ1 с 588ВН1 на стандартных адресах 177560 ? * Может, это оформить не в корпусе МК Б3-хх, а в прозрачном акриловом, да с матричными индикаторами 5х7 точек АЛС340ху ( доступны по ~40 руб ) ? |
xoiss |
NEW! Сообщение отправлено: 15 октября 2018 20:44
MM написал: В общем, к понедельнику успел сделать не всё, но бОльшую часть. Исходные коды проекта — здесь: 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 |
NEW! Сообщение отправлено: 15 октября 2018 21:50
MM написал: MM написал: Софт по любому следует делать для размещения в ПЗУ с 000000 адреса, ориентироваться на 8 кбайт ППЗУ ( 1801РР1 ). ну, скажем так, я знаю, как это (описание страниц доступной памяти) сделать в линковщике gcc (формат линкерного файла SVR4 "System V R4") Если именно на КР537РУ11, возможно стоит разместить её массив СОЗУ с 170000 адреса длиной 001000. но я пока не знаю, как это сделать в компиляторе Си для ДВК / УК-НЦ... и вообще можно ли там такое сделать надо читать прилагаемую мануалку, либо кто-нибудь пусть подскажет, как это сделать код (адреса перехода и пр.), насколько мне известно, ДВКшный компилятор Си (равно как и компилятор Паскаль) делает полностью перемещаемым поэтому не принципиально, с какого адреса он в итоге будет размещаться в памяти (если с 000000 - ну, значит так) 8 кбайт ПЗУ — если не использовать printf/scanf и пр. ненужности, то, думаю, должно хватить MM написал: ... ну, эммм, давайте пока пойдём по минимальному варианту — хотя бы его осилить бы Какой софт может быть, для варианта "программируемый 8-ричный контроллер" >...> максимум если только с добавлением вот этого: SL project написал: // да, такое возможно реализовать... в т.ч. и с эффектом "бегущей строки" Возможно ли реализовать что при включении калькулятора загорается не сразу 0, а бегущая строка что то по типу PDP-11 CALC или CPU H1806 CALC а только потом загорается 0 и калькулятор переходит в режим вычиcлений. MM написал: сами разведите! Пока дело исключительно в отсуствии желающих сделать топологию ДПП оставьте самый минимальный набор компонентов — только то, что действительно необходимо |
Сейчас на форуме |
svinka
Advanced Member
Сеньор Откуда: Совчина Всего сообщений: 1585 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 25 июня 2016 |
Вообще-то тема не про калькуляторsы а про PDP-11 |
MM
Advanced Member
Откуда: Павловский Посад Мск.обл. Всего сообщений: 3418 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 2 авг. 2013 |
xoiss написал: Разрешите напомнить, уважаемый господин 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 |
NEW! Сообщение отправлено: 16 октября 2018 1:12
svinka написал: ... ну, вообще-то как раз про калькуляторы Вообще-то тема не про калькуляторsы а про PDP-11 MM написал: да, я в общем как раз и не тороплюсь физически привязывать софт к железу рановато допишу - протестирую на персоналке - потом попробую на ДВК перетащить (да, вот как раз эмулятором воспользуюсь) - заодно посмотрю имеющийся у меня Си-шный компилятор для ДВК если в таком варианте взлетит, то ... ну, как минимум положу в архив до тех пор, пока будет определённость с железкой вот что касается железки — то я всё-таки ещё раз предлагаю взвесить все моменты ключевое, как я понял, сейчас - это даже не плату развести, а таки выбрать, что в ней будет, а чего не будет если перечитать тему от начала и до крайнего сообщения, то я вижу довольно много неопределённостей... ... из которых, пожалуй, главная — это будет ли там RT-11 или нет (а ведь от ответа на этот вопрос схема и плата железки зависят радикально) ... и вторая по величине неопределённость — какое будет ПЗУ: ЭСППЗУ или просто ПЗУ (УФПЗУ) у меня есть сильное опасение, что: Если не определиться с этими вопросами, То проект останется на стадии "написания технических требований/характеристик" и второе моё опасение: Если, даже определившись, включить таки в проект слишком много всего, То либо (а) будут "железячные" баги, и плату придётся 2-3 раза доводить/переделывать, либо (б) это останется "платой с микросхемами" без операционной системы, т.к. некому будет её адаптировать/портировать, либо в лучшем случае (в) какие-то базовые функции этого устройства удастся поднять, но остальные так и останутся недотянутыми моё предложение — сделать *минимальную* аппаратную конфигурацию: - ПЗУ использовать "обычное" — программатор и импортные РФки сейчас несложно найти (а можно и флеш поставить) - RT-11 туда не тащить, т.к. это за собой потянет массу проблем - поставить минимальное (по современным меркам, конечно ) статическое ОЗУ — я бы сказал, пропорция 16/48, как у Спектрума, вполне себе норм. (ну, можно джамперами объём ПЗУ выставлять 4-8-16 — а остальное, чтоб ОЗУ было видно) - периферия — только клавиатура и 7-сегментный индикатор — отобразить их на несколько регистров — и сделать это *без* системы прерываний (всё равно там нечего прерывать) - всё! больше ничего не делать. даже шину на краевой разъём не стоит вытаскивать — лишнее это! в моём понимании - это ещё ну хоть как-то в обозримом будущем можно осуществить, с учётом общей занятости всех потенциальных участников если это взлетит, если будет рабочий образец в чистеньком корпусе от Б3-23 — уверен, степень заинтересованности широкой аудитории резко вырастет — возможно, подтянутся ещё энтузиасты, что немаловажно и если так, то тогда уже можно будет подумать о чём-то более продвинутом — например, в корпусе от МК-52... ... ... с доп. функциями, с интерфейсами и пр. // ну, я так думаю |
Сейчас на форуме |
MM
Advanced Member
Откуда: Павловский Посад Мск.обл. Всего сообщений: 3418 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 2 авг. 2013 |
xoiss написал: Минимальная схема электрическая принципиалная - несколькими постами выше. выбрать, что в ней будет, а чего не будет Состав : М1801РР1 , адреса 000000 - 017777, или модуль ЭСППЗУ с адресами 000000-157777 ( 56 кбайт ) КР537РУ11, адреса ( вероятные ) - 170000-170777 В чем польза минимальной конфы : 1.Работоспособность. 2.Возможность разместить на ДПП 3.Дешевизна китайских ДПП 4.Относительная дешевизна всего конструктива ( мало ИС ). |
xoiss |
NEW! Сообщение отправлено: 17 октября 2018 13:27
MM написал: Хорошо. База понятна. Состав MM написал: Да, посмотрел. Минимальная схема электрическая принципиалная - несколькими постами выше. Есть несколько вопросов/предложений (я нисколько не настаиваю на них, но у меня есть основания, чтобы это обсудить): 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) можно ли в процессе работы (а) снижать тактовую частоту процессора (если да, то до какого предела?), или (б) можно ли останавливать внешнее тактирование на произвольное продолжительное время и потом возобновлять тактирование? Ну, чтобы таким образом искусственно переводить процессор в режим сна. // внешнее ОЗУ - статическое |
Сейчас на форуме |
<<Назад Вперед>> | Страницы: 1 2 3 4 * 5 6 7 8 9 10 | Печать |
Полигон-2 » Калькуляторы, арифмометры, PDA, HPC » Самодельный калькулятор в корпусе Б3-23 |
1 посетитель просмотрел эту тему за последние 15 минут |
В том числе: 1 гость, 0 скрытых пользователей |
Последние | |
[Москва] LIQUID-Акция. Сливаются разъемы CF МС7004 и 7004А на AT и XT Пайка термотрубок Проммать s478 PEAK 715VL2-HT ( Full-Size SBC) Подскажите по 386 материке по джамперам. |
Самые активные 5 тем | |