PDA

Просмотр полной версии : Разработка ЭКВМ на MCS-48



dvarkin
16.02.2020, 22:23
Бытует мнение, что на этих ОМЭВМ скромные ресурсы. Но ведь тем и интереснее) К тому же - где только нет этих ВЕ39.

Решил сделать сабж. Поразбиравшись, обнаружил много интересного, делюсь.

Реплика Элекон МК - Аюша-МК8039 (http://rw6hrm.qrz.ru/calc.htm)

Схема с нестандартным использованием интерфейса ВР43: 73556.

Классные ресурсы:
Боборыкин А. В. - Однокристальные микроЭВМ (1994)
MCS-48 family of single chip microcomputers user's manual (Intel)
Полупроводниковые БИС запоминающих устройств (1987)
МикроЭВМ в книгах (http://publ.lib.ru/ARCHIVES/M/''MikroEVM''/MikroEVM_v_8_knigah._Kn.7.(1988).%5bdjv-fax%5d.zip)

Sergei Frolov
17.02.2020, 08:11
У нас был один калькулятор на ВЕ39
http://www.leningrad.su/museum/show_calc.php?n=633

rw6hrm
17.02.2020, 08:15
но нажатие "0" от нажатия ничего без доп. линии ввода отличать не получалось - может, есть способ?
Почему бы не использовать вывод Е0 как "прерывание"? Там же появляется низкий уровень при нажатии любой клавиши?
За темой буду следить, ибо есть мысль собрать простой калькулятор на сабже (десятичный) с использованием 1601.

- - - Добавлено - - -

Sergei Frolov, а прошивок и схемы с этого калькулятора нет? Походу это и есть моё желание ;)

Mick
17.02.2020, 08:23
что на этих ОМЭВМ скромные ресурсы. Но ведь тем и интереснее)
Ну да у них нет операции сравнения.
Сравнивать будешь значения через операции сложения или вычитания, но тем интереснее ;)

Sergei Frolov
17.02.2020, 08:26
а прошивок и схемы с этого калькулятора нет? Походу это и есть моё желание ;)

Пока не снимал

rw6hrm
17.02.2020, 09:06
Оставлю тут до кучи:
1. Мануал и схему к IMSAI-8048, https://yadi.sk/d/7kegwaZomgV_Bg . Классика жанра от разработчиков.
2. Ссылка на описание возможностей и программирования ВЕ48, http://ofap.ulstu.ru/res/REFER_BOOK_MK48&MK51/mk48/start_mk48.htm (иногда 504 выдаёт...)

Sergei Frolov, стою на коленях, протягиваю печеньки ;)

- - - Добавлено - - -


или вычитания
Операций вычитания тут тоже нет.

andrews
17.02.2020, 12:44
Тоже давно хотел сделать, но на на MCS-51 c прошитым бейсиком, графическим дисплеем и загружаемыми в SRAM с батарейками или FRAM кодами для бейсика и данными. Может быть и не так сложно, как на MCS-48, но тоже безумно интересно

bigral
17.02.2020, 13:42
прикольная микруха своей хардкорностью, НО! по сути чтоб чтото стоящее из нее слепить, надо обвязки добавить стоко же скоко и для i8080, что как бы нивелирует саму идею её применения... (хотя ей не надо -5 и +12 но во времена когда 50% продукции электронной промышленности это DC-DC преобразователи, это вообще не проблема)

интересно можно ли на ней слепить совместимый с мк-52 аппарат, чтоб использовать кучу софта написанного для него? конечно логичнее взять шото более подходящее по моще, цене и доступности типа stm8/32... (к стати этого никто еще не сделал, мк152 так и не развился в нормальный продукт, в стиле калькуляторов от HP)

Sergei Frolov
17.02.2020, 13:52
мк152 так и не развился в нормальный продукт, в стиле калькуляторов от HP)

Почему? Вот пример в продаже
https://aliexpress.ru/item/4000035943605.html

dvarkin
17.02.2020, 15:09
У нас был один калькулятор на ВЕ39
http://www.leningrad.su/museum/show_calc.php?n=633
Оно прекрасно! У меня как раз есть МК-56 в таком же корпусе, я (втч) им вдохновляюсь!


Почему бы не использовать вывод Е0 как "прерывание"? Там же появляется низкий уровень при нажатии любой клавиши?
Увы, до проверки на прерывание сигнал, скорее всего, не доживёт - дешифратор блочится за такт до импульса ALE, во время которого происходит проверка. Я думал использовать второй триггер от Single Step части схемы, но это уже как-то перебор.


Ну да у них нет операции сравнения.
УПС.


Сравнивать будешь значения через операции сложения или вычитания, но тем интереснее
Почему бы не через RLC A?:)


Sergei Frolov, а прошивок и схемы с этого калькулятора нет?
По интернету ходит прошивка ВЕ48-0000, но я не видел, чтобы кто-то понял даже её назначение (а интересно). Вдруг - калькулятор ;)


1. Мануал и схему к IMSAI-8048, https://yadi.sk/d/7kegwaZomgV_Bg . Классика жанра от разработчиков.
Bit banged 110 бод UART выглядит любопытно.


2. Ссылка на описание возможностей и программирования ВЕ48, http://ofap.ulstu.ru/res/REFER_BOOK_...start_mk48.htm (иногда 504 выдаёт...)
А мне всегда 502 :) но меня всем устраивает Боборыкин.


Тоже давно хотел сделать, но на на MCS-51 c прошитым бейсиком, графическим дисплеем и загружаемыми в SRAM с батарейками или FRAM кодами для бейсика и данными. Может быть и не так сложно, как на MCS-48, но тоже безумно интересно
Для графики ИМХО софт рутинно писать, а так прикольно. Про MCS-51 в Боборыкине тоже есть.

Вообще из моего проекта получается скорее не ЭКВМ, а больше просто SBC, учитывая ограниченность ОМЭВМ. Но по интерфейсу ориентируюсь на ЮТ-88 и МК-56. IMSAI слишком динозавр, но тоже есть что позаимствовать :) Хотя, получается (почти) современный IMSAI

Mick
17.02.2020, 15:10
Операций вычитания тут тоже нет.

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

dvarkin
17.02.2020, 15:21
по сути чтоб чтото стоящее из нее слепить, надо обвязки добавить стоко же скоко и для i8080
Схема в draft.pdf - черновик только потому, что не протестирована, а так - обвязки, вроде, не так много, и большинство - узкие корпуса.
К тому же может прокатить идея с ЖКИ через интерфейс-шину РВВ.
Кстати, резисторы, что я поставил на эту шину ввиду квазидвунаправленности порта я не расчитывал, а значние пока выбрал интуитивно - не знаю, как их просчитать - может, вообще придётся ставить какой-нибудь ШФ.

- - - Добавлено - - -

Mick, да как числа сложением сравнить - непонимаю :confused:

Sergei Frolov
17.02.2020, 15:23
Вот, кстати, для желающих
https://www.avito.ru/sterlitamak/kollektsionirovanie/elektronika_mk_898060988

Mick
17.02.2020, 15:29
Mick, да как числа сложением сравнить - непонимаю
К числу прибавляешь константу и если результат равен 0, то числа равны :)

Надо покопаться у себя, должны были остаться мои потуги по этому поводу.

P.S. Мануал на серию MCS-48 - http://bitsavers.trailing-edge.com/components/intel/8048/9800270D_MCS-48_Family_Users_Manual_Jul78.pdf

rw6hrm
17.02.2020, 16:04
По интернету ходит прошивка ВЕ48-0000
по объёму не подходит. Это один кБ внутренней памяти, а в калькуляторе две м/с по 2 кБ, итого четыре. Скорее всего это или микроволновка, или клавиатура (что тоже неточно).

- - - Добавлено - - -


Вот, кстати, для желающих
Не, это не впечатляет, особенно индикатор. Только самопал, только хардкор.

- - - Добавлено - - -


до проверки на прерывание сигнал, скорее всего, не доживёт
Этим сигналом взводим ТМ2, а после прочтения контроллер её сбрасывает. Аналогично подключению D5.2 из схемы http://rw6hrm.qrz.ru/8bitdisp.htm

dvarkin
17.02.2020, 16:10
Mick, а может легче сделать такую подпрограмму:



MOV R0, #1001b

LOOP:
DJNZ R0, START
RET

START:
CLR F0
CLR F1

MOV A, R1
RRC A
MOV R1, A
JNC NEXTCOMPARE
CPL F0

NEXTCOMPARE:
MOV A, R2
RRC A
MOV R2, A
JNC FLAGSEQ?
CPL F1

FLAGSEQ?:
MOV A, #10b
JF0 NEXTEQ
DEC A
NEXTEQ:
JF1 ENDEQ
DEC A
ENDEQ:
JZ LOOP
ADD A, #10b
JZ LOOP

RET



Если число в R1 было большим - F0 будет TRUE, Если большим было число в R2 - F1 будет TRUE, если были равны - и F0 и F1 - FALSE

- - - Добавлено - - -

rw6hrm, 74LS74 из Single Step части и есть ТМ2, в схеме переименовать забыл.

Я думал использовать второй триггер от Single Step части схемы, но это уже как-то перебор.

Mick
17.02.2020, 17:25
Mick, а может легче сделать такую подпрограмму:

может легче, может и нет - сейчас не скажу ибо опыты ставил очень давно.

dvarkin
17.02.2020, 17:39
P.S. Мануал на серию MCS-48 - http://bitsavers.trailing-edge.com/components/intel/8048/9800270D_MCS-48_Family_Users_Manual_Jul78.pdf

Так Боборыкин из первого сообщения же получше!)

Sergei Frolov
17.02.2020, 22:44
https://i.ibb.co/4NHp0R8/Elekon-MK-1.jpg (https://ibb.co/4NHp0R8) https://i.ibb.co/vJ4n1pk/Elekon-MK-2.jpg (https://ibb.co/vJ4n1pk)

rw6hrm
20.02.2020, 09:48
По поводу моих ссылок, что давал на первой странице. В Ульяновском универе перешли на новый движок и основательно почистили контент, на письма по поводу "ввернуть всё в зад" пока не отвечают. Посему ссылка через вебархив 2007 года, http://web.archive.org/web/20071016083848/http://ofap.ulstu.ru/res/REFER_BOOK_MK48&MK51/mk48/start_mk48.htm

- - - Добавлено - - -

Sergei Frolov, жду пзушки, всё равно их ковырять придётся, поскольку в наличии только ВЕ35/48, а в них ОЗУ поменьше. За схему ещё раз спасибо, уже разобрался, что можно выкинуть (это касается 517 серии, и принтер не нужен, и цена ныне зверская).

Sergei Frolov
20.02.2020, 09:58
жду пзушки, всё равно их ковырять придётся, поскольку в наличии только ВЕ35/48, а в них ОЗУ поменьше. За схему ещё раз спасибо, уже разобрался, что можно выкинуть (это касается 517 серии, и принтер не нужен, и цена ныне зверская).

Это займет какое-то время

rw6hrm
20.02.2020, 10:03
Неспешно, м/с давно лежат, но руки чешутся ;)

dvarkin
20.02.2020, 21:04
Помню что когда надо было сравнить два значения, приходилось производить арифметическую операцию, и судя по всему сложения :)
Я, кажется, понял как можно делать - если одно число перевести в отрицательное в дополнительном коде (https://microkontroller.ru/programmirovanie-mikrokontrollerov-avr/pryamoy-obratnyiy-dopolnitelnyiy-kod-dvoichnogo-chisla/), то можно сложить его со вторым и получить верный результат, по знаку которого можно определить, что было больше. Это также будет операцией вычитания. Но числа должны быть в диапазоне [-127, 128].


Sergei Frolov, жду пзушки, всё равно их ковырять придётся, поскольку в наличии только ВЕ35/48, а в них ОЗУ поменьше.
Можно же добавить внешнюю память данных ОЗУ?


Посему ссылка через вебархив 2007 года
Раздел с примерами годный (однако, в сети сейчас уже можно откопать алгоритмы помощнее/поподходящее), там тоже есть что-то про дополнительный код в том числе, но для всего остального я бы предпочёл Боборыкина (+ в этой же книжке рассказывается про MCS-51).

И ещё важный момент. На схеме для ВЕ39 кварц 6МГц т. к. где-то после 6.5МГц не будет укладываться в тайминги ПЗУ 2716 (РФ5 втч).

rw6hrm
20.02.2020, 21:33
Можно же добавить внешнюю память данных ОЗУ?
...поэтому и "ковырять"...
Страничку, кстати, запустили, поэтому если есть у кого чем выкачать её всю - торопитесь. Вообще она была создана АЖ в 1998 году, поэтому неудивительно, что уже есть что-то помощнее. Возражений от авторов не будет.

dvarkin
21.02.2020, 22:52
В схеме из первого сообщения есть ошибка — входы данных мультиплексора нужно попарно поменять местами — во время /PSEN=+5В должно подставляться содержимое регистра страниц памяти данных, а при /PSEN=0 должно подставляться обычное содержимое шины. Регистр 256 байтных страниц памяти данных должен переключать старшие разряды получившегося 12-ти битного адресного пространства памяти данных.
Таким образом я планирую записывать в РУ10 код программой-монитором и выполнять его. Все что-то молчали, вдруг — не поняли :)
И ещё ошибка — ИВ1 нужно подключать к контакту "0" шины выводом /EO, а не /GS — так можно отличить высокий уровень на всех входах от единственного низкого уровня на нулевом входе, да и /EI у двух ИВ1 можно попарно поменять.

rw6hrm
02.03.2020, 12:34
...всё жду ПЗУшки, схему на макетке уже распаял, выкинув ненужное, индикатор пока подкинул светодиодный. Казанцы (бывший завод-изготовитель Элекона) на письма не отвечают, походу как обычно, вся документация была выкинута в 90-х, а народ поумирал потихоньку...

Sergei Frolov
03.03.2020, 13:24
Вот

- - - Добавлено - - -

Наверняка можно в каком-нибудь Протеусе сделать эмулятор

Tronix
03.03.2020, 20:02
Наверняка можно в каком-нибудь Протеусе сделать эмулятор

Не можно. Нету в Протеусе i8048 (msc-48).
Надо пейсать для него модельку.

- - - Добавлено - - -

И я даже надо сказать когда-то давно пробовал, но не асилил.... Вообщем, единственное что помню - это ядро 8048 стащил из o2em (https://github.com/lutris/o2em) - эмулятора Magnavox - Odyssey2. Кстати, этот самый Odyssey2 (https://en.wikipedia.org/wiki/Magnavox_Odyssey%C2%B2) вполне себе полноценный комп типа спецтрума, только на сабже - 8048.

rw6hrm
03.03.2020, 23:07
Вот
Ожидаемо ВЕ35 не заработала. "Нолик" при включении даёт, а после нажатия любой клавиши индикаторы гаснут. Придётся добавлять память и лезть в прошивку.

Sergei Frolov
03.03.2020, 23:12
Может, перейти на ВЕ39?

rw6hrm
04.03.2020, 00:15
Может, перейти на ВЕ39?
Может, но в ближайших лабазах их нет (ближайшие - это максимум в радиусе 5 км от моей ленивой пятой точки), но валяются с десяток ВЕ35/48 - не пропадать же добру ;) Плюс почти вся 561-я серия ждёт замены на 155, как канонiчную (КП2 только заменить нечем по логике работы). Тем более, что прошивка разбирается очень хорошо, можно повыкидывать всё, что касается печати, а взамен подключить РУ10.
...и всё-таки интересно разработчики применили ЛН3 в качестве регистра...

Sergei Frolov
04.03.2020, 09:41
Прошивку вряд ли можно будет откорректировать. В Элекон МК используется 7 регистров памяти - это по прикидкам (7+X+Y)*8=72 байта.
Вот, кстати, доку отсканировал: http://www.leningrad.su/calc/docs/elekon_mk.rar

rw6hrm
04.03.2020, 10:05
Скорее всего эти "регистры" используются из ячеек ОЗУ, поскольку, кмк, вряд ли под них будут отданы РОНы. Значит вполне возможно переделать их под внешку.
Будем трудиться, в любом случае большое спасибо за предоставленную информацию!

UPD. В принципе прошивка дизасмилась, причем суть вполне понятна, но на некоторых кодах споткнулся, пометились как illegal: 33, 38, С3, 63, 66, В7.

UPD2: м-да, в лоб не переделать из-за команд косвенного обращения к ячейкам памяти (INC@ и XCHD)... Придётся искать ВЕ39/49...

rw6hrm
05.03.2020, 21:12
Tronix, мне тут скромно сообщили, что в Протеусе есть примитив 8039 (без встроенной памяти программ). То, что надо, только вид сбоку ;)

Tronix
05.03.2020, 21:17
Tronix, мне тут скромно сообщили, что в Протеусе есть примитив 8039 (без встроенной памяти программ). То, что надо, только вид сбоку ;)

https://i.ibb.co/VSVpL4s/no8039.png (https://ibb.co/7WvNSmq)

rw6hrm
05.03.2020, 21:34
Печаль...

dvarkin
05.03.2020, 23:24
UPD. В принципе прошивка дизасмилась, причем суть вполне понятна, но на некоторых кодах споткнулся, пометились как illegal: 33, 38, С3, 63, 66, В7.
В Linux 8039dasm дизассемблит нормально и asm48 собирает, вроде, тоже нормально даже если не слить два файла в один, хотя я ожидал ошибку.


UPD2: м-да, в лоб не переделать из-за команд косвенного обращения к ячейкам памяти (INC@ и XCHD)... Придётся искать ВЕ39/49...
Интернет-магазины в помощь (от себя предложу местный elirit.ru).

rw6hrm
06.03.2020, 07:41
В Linux 8039dasm дизассемблит нормально и asm48 собирает, вроде, тоже нормально даже если не слить два файла в один, хотя я ожидал ошибку.
Полученный дизасм файлик можно попросить?


Интернет-магазины в помощь
Выделенный бюджет 150 рублей :), ни один магаз не даёт закупиться менее чем на 300 - смысл пропадает напрочь.

andrews
06.03.2020, 13:01
https://www.chipdip.ru/product/kr1816ve39
по 50 руб от 15 шт, от 1 шт. 60 руб. правда без доставки. Пришлось взять 5 шт. так как самовывоз с Восстания от 300 руб. Если кому-то надо в Питере, отдам за 60 руб от 1 до 3 шт. при самовывозе от м. "Пр. Просвещения" после праздников. Телефон для связи в личку пожалуйста. Если в Ставрополь, могу отослать почтой России тогда адрес в личку. Правда не знаю, уложится ли мелкий пакет почты России из Питера в Ставрополь на оставшиеся 90 руб.
А чем не устраивают симулятор, ассемблер и дизассемблер из пакета Avocet?
https://www.qrz.ru/software/detail/avocet_simulator_for_intel_8048_disasm_280

dvarkin
06.03.2020, 21:06
15р. ВЕ39 стоит в магазине (ижевском), что я предлагал выше, купил от нечего делать, вот так и родилась эта тема ;)
Хоть бы не обанкротились и не выкинули :v2_dizzy_priest:


А чем не устраивают симулятор, ассемблер и дизассемблер из пакета Avocet?
Кроме как на том сайте про него нигде ничего не сказано, странно.


Полученный дизасм файлик можно попросить?
Сделал для сравнения дизасм двумя дизасмами на Linux - 8039dasm из проекта asm48 на SourceForge и d48 из пакета d52:
71722

rw6hrm
06.03.2020, 21:21
Что-то неправильно со ссылкой на вложение, нет такого якобы...

ВЕ39 внезапно нашелся на руках у близлежащего народа. Но это лишь первая ступень, всё равно буду переделывать под ВЕ35 ;)

Tronix
06.03.2020, 21:38
ВЕ39 внезапно нашелся на руках у близлежащего народа. Но это лишь первая ступень, всё равно буду переделывать под ВЕ35

Я конечно может чего не понимаю, поэтому уточню - речь ведь о калькуляторе идет, на который Сергей Фролов ссылку дал? Если делать все на ВЕ35 - зачем тогда дизасмить прошивку? Мне кажется гораздо проще и быстрее написать свою. Если делать на ВЕ39 - опять не понятно, зачем ее дизасмить - взял готовую да залил.

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

andrews
07.03.2020, 00:06
Кроме как на том сайте про него нигде ничего не сказано, странно
ничего странного, на аналогичном пакете для 8051 мы делали софт для СВЧ печки "Берегиня" Вологда ВОМЗ в начале 90-х. Фирма Avocet Systems тогда в российско-фидошную эру была известная, а сейчас судя по всему она на военных нато пашет. И еще такие же пакеты в сети есть для 8080, 8085 и z80 погуглите. Что интересно, работала и под ДОС, и под Win3.11 и под Win7 32 бит с ходу запустилась. Правда здесь нужно еще посмотреть, как будет работать.

- - - Добавлено - - -


15р. ВЕ39 стоит в магазине
так это вообще ни о чем 25 центов, берите штук 20. Правда не знаю, с какими eeprom ее запускать? 573РФ2 у меня дома конечно валяются, но возни с ними.
По книжкам кстати я тогда себе приобрел Бином 1992 "Однокристальные микроЭВМ. Семейство МК48. Семейство МК51" Липовецкий Г.П. Литвинский Г.В. и др. 339с. тоже неплохая и довольно подробная

- - - Добавлено - - -


Я конечно может чего не понимаю, поэтому уточню - речь ведь о калькуляторе идет, на который Сергей Фролов ссылку дал? Если делать все на ВЕ35 - зачем тогда дизасмить прошивку? Мне кажется гораздо проще и быстрее написать свою. Если делать на ВЕ39 - опять не понятно, зачем ее дизасмить - взял готовую да залил.

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

rw6hrm
07.03.2020, 08:13
Дизасмят обычно когда нужно понять неизвестный функционал
Для меня всё неизвестно ;) А файлик нужен лищь для того, чтобы понять, как эта хрень работает и что можно выкинуть/обрезать при переходе на более слабый чип. Скажем, достаточно будет одной ячейки памяти, в связи с этим функцию суммирования в ячейки можно будет исключить. Ну и принтеровские хвосты выкинуть.


Правда не знаю, с какими eeprom ее запускать?
Для себя этот вопрос решил использованием флешек со старых материнок. Хотя и РФ-ки есть в наличии. И шить легче, и доступнее.

Практически готов макет полностью на ТТЛ, выкинул весь КМОП за неимением такового в запасах. Оформляю в корпус.

Shumadan
07.03.2020, 13:45
было бы интересно сделать из него программируемый калькулятор с загрузкой программ с магнитофона.

andrews
07.03.2020, 19:53
было бы интересно сделать из него программируемый калькулятор с загрузкой программ с магнитофона
для этого придется переделывать программу( которая сейчас инициируется последовательными нажатиями клавиш, а не данными из памяти) и вместо eprom хранить программы в озу с батарейками. То есть нижние 2 кбайта могут оставаться eprom, а верхние надо совместить память программ и данных, или сделать страничное внешнее озу с батарейкой. Магнитофон? А он еще у кого-то есть? Скорее тогда снимаемую память на FRAM с последовательным(USB) интерфейсом.

Shumadan
07.03.2020, 20:14
для этого придется переделывать программу( которая сейчас инициируется последовательными нажатиями клавиш, а не данными из памяти) и вместо eprom хранить программы в озу с батарейками.
Понятно что тут надо изобретать собственную Ось. Либо под команды ВЕ39, либо эмуляция ПМК

Магнитофон? А он еще у кого-то есть? Скорее тогда снимаемую память на FRAM с последовательным(USB) интерфейсом.
Магнитофон или подключаемая память - не принципиально. Лишь была бы возможность обмена с внешними носителями.

dvarkin
08.03.2020, 15:55
Что-то неправильно со ссылкой на вложение, нет такого якобы...
Как-то не так прикрепил - вложение удалилось, сейчас ещё раз попробую:
71735

- - - Добавлено - - -


Бином 1992 "Однокристальные микроЭВМ. Семейство МК48. Семейство МК51" Липовецкий Г.П. Литвинский Г.В. и др. 339с.
А "Однокристальные микроЭВМ" (Боборыкин А.В., Липовецкий Г.П., Литвинский Г.В., Оксинь О.Н., Прохорчик С.В., Проценко Л.В., Петренко Н.В., Сергеев А.А., Сивобород П.В.; МИКАП 1994), случайно, не является поздним вариантом? Эту книгу с самого первого сообщения продвигаю :)

- - - Добавлено - - -


Правда не знаю, с какими eeprom ее запускать?
Я тут купил себе в Китае CAT28C256 для отладки. Заказал две штуки, одна (филиппинская) оказалась полурабочей - вроде бы записывала, но при чтении данные смешивались с мусором.
Так вот, проверял я это с помощью AT89S52 с PAULMON2 на бредборде - он может записывать и при ручном редактированни памяти данных, и HEX, но при записи HEX он не может проверить валидность записи ввиду одной фичи CAT28C256. Кстати, нет идей как ещё можно в неё записать данные?

По поводу магнитофона и FRAM - почему бы не использовать i2c память типа КР5004РР4 - там же где у меня в Ижевске продаются ВЕ39 есть и эта РР.

andrews
08.03.2020, 20:12
А "Однокристальные микроЭВМ" (Боборыкин А.В., Липовецкий Г.П., Литвинский Г.В., Оксинь О.Н., Прохорчик С.В., Проценко Л.В., Петренко Н.В., Сергеев А.А., Сивобород П.В.; МИКАП 1994), случайно, не является поздним вариантом? Эту книгу с самого первого сообщения продвигаю :)
похоже на то, скачал, но не сравнивал в чем различие. Авторы те же кроме Боборыкин А.В.,Сергеев А.А. эти новые, а по структуре на первый взгляд книги похожи. По поводу ППЗУ у меня куплена давно SRAM со встроенной литиевой батарейкой, надо посмотреть не сдохла ли. Если сдохла, буду искать малопотребляющую в режиме хранения SRAM и прикручу какой-нибудь литий к ней. Если поставить послед. интерфейс на плату, то можно одним чипом тогда обойтись на все случаи только поставить на сокет к ней небольшой разъемчик.


По поводу магнитофона и FRAM - почему бы не использовать i2c память типа КР5004РР4 - там же где у меня в Ижевске продаются ВЕ39 есть и эта РР.
это надо еще i2c в 8039 вталкивать :)

Tronix
08.03.2020, 20:24
это надо еще i2c в 8039 вталкивать

i2c - простой как две копейки. Пожалуй, самый простейший из всех когда-либо существующих последовательных протоколов. Проще чем UART, так как не нужно выдерживать никакие временные рамки. Реализуется на чем угодно, хоть тумблерами можно нащелкивать. В микроконтроллере реализация i2c занимает, как правило, минут 20 времени программиста, с учетом незнакомой архитектуры.

Sergei Frolov
08.03.2020, 20:33
Реализуется на чем угодно, хоть тумблерами можно нащелкивать.

Не пойдет из-за дребезга

dvarkin
09.03.2020, 10:37
А ведь так на CAT28C512 можно сделать неплохой EEPROM диск для спектрума, туда же RTC и прочую периферию поставить. На порт C ВВ55 повесить три контакта — SCL и SDA на запись, последний через диод (катодом к ВВ), и SDA на чтение. Так в одном адаптере i2c для LPT было.

andrews
09.03.2020, 12:59
i2c - простой как две копейки. Пожалуй, самый простейший из всех когда-либо существующих последовательных протоколов. Проще чем UART, так как не нужно выдерживать никакие временные рамки. Реализуется на чем угодно, хоть тумблерами можно нащелкивать. В микроконтроллере реализация i2c занимает, как правило, минут 20 времени программиста, с учетом незнакомой архитектуры.так давайте с этого и начнем? С работающего на i8035/39 кода i2c. Антидребезг как раз не проблема, можно "на глаз" задержку сделать. В клавишах калькулятора, кстати тоже.

Tronix
09.03.2020, 13:34
так давайте с этого и начнем? С работающего на i8035/39 кода i2c. Антидребезг как раз не проблема, можно "на глаз" задержку сделать. В клавишах калькулятора, кстати тоже.

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

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

Mick
09.03.2020, 13:47
На порт C ВВ55 повесить три контакта — SCL и SDA на запись, последний через диод (катодом к ВВ), и SDA на чтение. Так в одном адаптере i2c для LPT было.

Зачем заморачиваться с программным I2C, когда есть контроллеры типа PCF8584 - https://www.nxp.com/docs/en/data-sheet/PCF8584.pdf?
На шину зацепил и пуляй туда и оттуда данные.

И стоят они приблизительно столько или немного дороже - https://aliexpress.ru/item/32830484222.html?spm=a2g0o.productlist.0.0.32947c5 bJuFpiG&algo_pvid=9928c089-cfaa-431d-9470-fe92779fdf27&algo_expid=9928c089-cfaa-431d-9470-fe92779fdf27-32&btsid=0b8b15f515837505762623813e2800&ws_ab_test=searchweb0_0,searchweb201602_,searchweb 201603_

andrews
09.03.2020, 17:43
ЭКВМ- электронная клавишная вычислительная машина вполне себе гармонирует по названию с компонентами ряда i8039. Дисплей цифровой или символьно-цифровой. Бейсиков не предлагать! Если появилась идея загружать что-то из энергонезависимой памяти и выгружать в нее - значит можно и последовательность клавиш(операционных и функциональных) и какие-то вычислительные процедуры из внешней памяти. Надеюсь, если клавиши закодировать, а MCU 8 битный, то остается простор для фантазии. Например, для решения квадратного уравнения нужно ввести 3 числа и потом получить результат(ы), аналогично до 4 степени, или простенькие операции с матрицами. Ну или, например, рассчитать вес ствола мокрой елки, зная диаметры спилов и длину( практические и несложные вычислительные задачки словом). Таких задачек каждый напридумывает себе вагон и маленькую тележку :) i2c может быть для всего! От подключения внешней памяти, до подключения термостата( правда не знаю, насколько может быть реализован на 8039 пид-регулятор).

rw6hrm
09.03.2020, 18:08
Кратко выражу свои мысли по поводу.
В-первых,
https://sun2-3.userapi.com/Sh3mx7moQRWHfRwHHHk1omIH6KIJ3W31oaA4qg/wO_q087VVsY.jpg
и не обсуждается ;)
Во-вторых, всегда хотелось собрать себе калькулятор. Не купить. Тема сбросила пусковой крючок, а информация от Сергея Фролова (ещё раз выражу ему свою благодарность!) дала пищу для размышлений и действий.
Итак, собираю для начала клон Элекона. Без физической поддержки принтера (оно и не нужно реально), на ТТЛ-логике. Т.е. уже идёт переработка схемы и завариваются мысли. Применяются только и исключительно те комплектующие, которых навалом дома (увы, но основной чип пришлось спрашивать на стороне), поэтому и ТТЛ. И пусть это будет инженерный макет, а не готовая к массовому повторению конструкция. Для решения моих задач хватит. В настоящее время макет содержит 8 микросхем.
Второй шаг - переработка существующего софта в сторону упрощения для применения менее ёмкого по памяти чипа. Вот тут уже желающие смогут выбрать, какой вариант повторять при желании. Для меня это тоже актуально, поскольку ВЕ35/48 ну просто валом.
И вот после этого свою задачу посчитаю решёной.
По схеме Элекона, что уже заметил. Схема сделана "с запасом", многое разведено, но не используется, так что есть куда упростить. Внешнее ОЗУ поставить можно, но без толку. Обращение к клаве и индикации сделано как к портам ввода/вывода, легко расширяется.
Делать из серии 1816 программируемый калькулятор есть задача невозможная, по причине архитектуры. Вы можете что-то записать в ОЗУ "снаружи", но исполнить не получится, поскольку программа и данные разделены. Посему вопрос о "программируемости" можно закрыть.
По применению Бейсика. Лет десять назад был у меня макет калькулятора (со светодиодным индикатором и маленькой клавой), в котором внутри крутился именно Бейсик, в качестве программной оболочки. Макет был на Z80, поскольку для него есть Бейсик, работающий из ПЗУ. Вариант на 6502, для которого также есть РОМ-Бейсик, не прокатил технически. Для ВМ80 бейсиков работающих из ПЗУ на тот момент не было найдено, все грузились в ОЗУ для работы. Система работала просто: Бейсик и программа-оболочка находились в ПЗУ и автоматом запускались при включении питания. Оболочка сканировала входящие нажатия, обрабатывала, и выдавала результат на индикатор, при этом в программе не было ни одного PRINT'а :). Занятый объём ПЗУ составлял чуть более 30 КБайт, плюс ОЗУ в килобайт. Всё это хорошо жрало питание, посему было разобрано и переродилось в "Аюшу-Z80". В общем, я просто рассказал, по какому пути возможно было пойти ;), это так, к теме не относящееся...

Sergei Frolov
09.03.2020, 18:50
Кстати, МК-152 сделали на 8051м ядре

- - - Добавлено - - -

https://pmk.the-hacker.ru/Микроконтроллер

MM
09.03.2020, 19:07
поскольку для него есть Бейсик, работающий из ПЗУ
Я, когда собирал калькулятор на Н1806ВМ2, тоже предполагал использовать Фокал из ПЗУ, но переделать БИОС калькулятора таким образом, что бы нажатия клавы корпуса МК-37 преобразовывать в коды терминала 15-ИЭ-00-013, хотя бы ключевые кнопки ( циферки, 5 арифметических действий, др. необходимые команды ).
Но как только ядро калькулятора заработало, прошло тесты от МС1201.02 ( ДВК-2 ), интерес мой как-то исчез - нелюблю программировать - это долго, нудно, и результат не столь очевиден, как в железе :|

andrews
09.03.2020, 20:23
Делать из серии 1816 программируемый калькулятор есть задача невозможная, по причине архитектуры. Вы можете что-то записать в ОЗУ "снаружи", но исполнить не получится, поскольку программа и данные разделены. Посему вопрос о "программируемости" можно закрыть.

не убедили. Если программа при опросе клавиш зафиксировала клавишу "ПРГ" и ее номер( пока не считал сколько сможет вместить ОЗУ определенной емкости) допустим до 100 разных "программ", то затем по номеру вызывается нужная последовательность данных, которые в свою очередь вызывают исполнение нужных подпрограмм с параметрами из памяти программ. Если же из 2 кбайт памяти программ 1 кбайт может быть перезаписан из ОЗУ(энергонезависимой памяти), то можно в свою очередь сменить и набор процедур уже в кодах 8039. Здесь (при таком подходе)нет никакой принципиальной разницы между 8039 и 8051. Разница есть лишь в самой реализации. От кодов, любезно предоставленных Сергеем Фроловым, можно двигаться и в сторону упрощения и в сторону усложнения. Кому как нравится. А что у кого в ящиках валяется. Так это по разному. У меня вот и дисплеев разных и MCU валяется много и разных. 8048 и 8035 вот тоже без дела лет 35 валялись.

rw6hrm
09.03.2020, 20:38
Ну тут не уверен, что командами из ОЗУ можно вызывать подпрограммы из ПЗУ,.. хотя можно более внимательнее прочесть описалово IMSAI-48, ссылку на доку я давал на первой странице, они там как-то магнитофон приделали, но вот куда загружается код - я не вникал... Но - а стоит ли? Это ж железо начинает почковаться в прогрессии, для начала хотя бы простейший аппарат сделать...

MM
10.03.2020, 00:19
Ну тут не уверен, что командами из ОЗУ можно вызывать подпрограммы из ПЗУ,
Ну это малость потребует увеличения ППЗУ, минимум до ~8 Кбайт - т.к. надо соорудить подпрограммы для "языка", номера подпрограмм будут хранится в ОЗУ, вперемешку с данными для них.
Вызов подпрограмм осуществлять по очереди или при др. условиях ( "переходах" ).
Можно ( вероятно ? ) вообще написать интерпретатор Бейсика в ППЗУ, а в СОЗУ - текст самой Бейсик-программы.
ИМХО - 16...32 Кбайт ППЗУ хватит. Тормоза будут еще те...

Но Бейсик - это сложно, можно просто съэмулировать простейший программируемый кальк.

andrews
10.03.2020, 14:43
"Язык" самый примитивный. Просто возможны два типа "программ". Первый если я хочу последовательным нажатием клавиш создать пользовательскую функцию, нажимая функциональные клавиши, например: ^2,+,^2,кв.корень= и калькулятор сам мне дает первый свободный номер для такой программы. Для простейшего калькулятора достаточно ограничится функциями одной-двух переменных. Вызываем эту программу нажатием клавиши
"функция", полученный номер, затем вводим число и =. Другой тип программ- загруженная в hex кодах 8039 процедура допустим для простоты тоже с одним числовым параметром( для обработки байтов лучше иметь клавиатуру с 16 ричными числами, но лично мне хочется использовать 4x4 или 4x5 пленочную клавиатуру c eBay, поэтому шестнадцатеричных чисел я не предполагаю; можно конечно и десятичный, и восьмиричный байтовый ввод использовать, что не сильно усложнит программу). Для такой процедуры с одной входной и одним возвращаемым значением надо оставить место под адрес запуска, параметры, указать ее длину, контрольную сумму и очевидно все это разместить в таблице. Формировать весь массив с заполненной таблицей( если известен адрес ее размещения в памяти) можно или на другом компьютере, или непосредственно на ЭКВМ при вводе с клавиш ( но это потребует добавить примитивный редактор "next" "prev", и у цифрового дисплея надо иметь хотя бы 8-9 разрядов, а еще лучше символьно-цифровой, что полезно для отображения символов функций и сообщений об ошибках). В общем сложно провести эту грань между интересными функциональными возможностями калькулятора и сложностью их реализации.

Mick
11.03.2020, 11:45
Решил сделать сабж. Поразбиравшись, обнаружил много интересного, делюсь

Тут откопал у себя схему своей попытки поделия на ВЕ35. Было это еще в 2002 году.
Положил в тот же пост, что и картинки - https://zx-pk.ru/threads/25682-samodelnyj-kompyuter-na-z80-i-ne-tolko.html?p=887010&viewfull=1#post887010

dvarkin
12.03.2020, 14:06
ВЕ35/48 ну просто валом.
Странно, в Ижевске валом ВЕ39, а я бы не отказался от кучки ВЕ48.


Делать из серии 1816 программируемый калькулятор есть задача невозможная, по причине архитектуры. Вы можете что-то записать в ОЗУ "снаружи", но исполнить не получится, поскольку программа и данные разделены. Посему вопрос о "программируемости" можно закрыть.
Приехали, а как PAULMON работает?

- - - Добавлено - - -

Поясняю, на всякий случай, про PAULMON и всё такое:
У 1816 есть сигналы /RD /WR для чтения и записи Памяти Данных соответственно, а есть сигнал /PSEN для чтения Памяти Программ аналогичный /RD для ПД.
Если, например, элементом 2И эти сигналы соединить и результат повесить на /OE ОЗУ, то ОЗУ будет откликаться и на чтение ПП и на чтение ПД, ну и вопрос дешифрации адреса - уже другой вопрос.

- - - Добавлено - - -

Mick, про плату 2002 г.: на схеме нет некоторой мелкой логики, например, ЛА3?
И зачем подтягивающие резисторы на шине адреса/данных (порт BUS) ВЕ35?

murgatroid_79
12.03.2020, 14:26
Давно лежит у меня без дела тепловычислитель ТВ-1 вот такой:http://images.vfl.ru/ii/1584002991/50b43a5f/29848865_m.jpg (http://vfl.ru/fotos/50b43a5f29848865.html)
http://images.vfl.ru/ii/1584003441/601c9d7d/29848900_m.jpg (http://vfl.ru/fotos/601c9d7d29848900.html) http://images.vfl.ru/ii/1584003595/f21d6ff2/29848910_m.jpg (http://vfl.ru/fotos/f21d6ff229848910.html)
http://images.vfl.ru/ii/1584010716/66dd202e/29850117_m.jpg (http://vfl.ru/fotos/66dd202e29850117.html)
Фотки не моего экземпляра,с инета надёргал.Купил,в своё время, из-за цифровых индикаторов,а заглянув внутрь уже рука не поднялась раздербанивать :)
Интересным показалось применение ККД КР580ВВ79...и книжка у меня была с описанием такого решения:
http://images.vfl.ru/ii/1584011973/763ce49d/29850342_m.jpg (http://vfl.ru/fotos/763ce49d29850342.html)
Думал займусь,изучу незнакомую архитектуру...
Отложил,забыл...и забил :(

Но прошивку с ПЗУ , всё-таки считал.Найду выложу..
Ну если надо кому-то ;)

andrews
12.03.2020, 14:48
Лучше сделать ОЗУ, в которое можно записывать коды как данные, а исполнять их оттуда как программу. Это если дать возможность пользователю набивать "программы", как последовательность кодов 8039. Если же поставить литий на ОЗУ, то код загрузчика можно заносить на стороннем программаторе, а все остальное непосредственно на ПЭКВМ, или наоборот можно все целиком загружать на стороннем программаторе, а на ПЭКВМ исполнять и корректировать. Можно и пошаговую отладку предусмотреть.

- - - Добавлено - - -


Ну если надо кому-то
платы эти под эпоксидкой? а вот то, что сокеты под MCU и EEPROM это хорошо! Если попытаться заменить 573рф2 на что-то EEPROMовское(через переходную плату), то сможете и что-то свое на этом железе разработать. Кстати вопрос в этой теме интересный -на что можно поменять 573рф2?

Tronix
12.03.2020, 17:30
https://habrastorage.org/webt/gk/uv/rd/gkuvrdrg2lxsdlqzc5zobbmd1-k.png

Ядро от O2EM эмулятора вроде работает более-менее по первым прикидкам.... Но, многое надо делать - таймер нормально реализовать, такты на шине соблюсти, с расширителем порта что-то решить, который М5L8243Р. Его, кстати, тоже в протеусе нет..... Ну, такое.....

dvarkin
12.03.2020, 17:54
murgatroid_79, прикольная вещица, а книжка у меня в вузовской библиотеке есть, брал недавно :)


Лучше сделать ОЗУ, в которое можно записывать коды как данные, а исполнять их оттуда как программу.
Именно это я и имел ввиду (элементы 2И - по вкусу, но в 8048 нет произвольного чтения ПП). Ещё раз в пример 8051 и PAULMON:
https://www.pjrc.com/tech/8051/pm2_docs/useful.gif
Здесь как раз поступили без 2И: Записываем в ОЗУ коды с UART по /WR как ПД, а читаем по /PSEN как ПП.

- - - Добавлено - - -

Tronix, интересненько

- - - Добавлено - - -


на что можно поменять 573рф2?
CAT28C16?

dvarkin
13.03.2020, 21:40
Переделал схему своего варианта ЭКВМ из первого сообщения: 71814

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

Так как, оказывается, после обращения к ПП состояние Порта 2 восстанавливается, то почему бы не поместить в него адрес для ПД вместо мультиплексора? (Но при обращении к РВВ эти данные стираются.)

Триггер ТМ8 запоминает данные младшей части Порта 2 (во время фронта ALE) для оперирования ими во время обращения к РВВ - строчка клавиатуры выбирается по записанным в порт данным. Кроме того, выходы ТМ8 всегда содержат данные младшей части Порта 2 не изменяющиеся при обращении к ПП.

1602 LCD может начать выводить данные, когда ВЕ39 ещё заземляет некоторые (квазидвунаправленные!) контакты младшей части Порта 2, ещё может случайно выполнится операция ANLD или ORLD, что тоже может создать конфликт и с 1602, и с ЛА9 (2И-НЕ ОК) (при работе LOW IMPEDANCE PULLUP), поэтому поставил такие же как в Спектруме 680 Ом резисторы.

Серии микросхем нарисовал какие есть у меня, но нужно учитывать, что максимальный выходной ток лог. 0 выводов Порта 2 и ALE - 1,6 мА: если бы все ИС были 555 серии (у которых максимальный входной ток лог. 0 - 0,4 мА), то ALE был бы перегружен.

Третий вывод Порта 2 попутно дублирован для ТМ8 с целью разгрузки шины от 555 серии.

Кстати, как вообще клавиатурные матрицы работают с не Шоттки диодами - там же напряжение падает вверх до ненулевого уровня?

rw6hrm
14.03.2020, 21:16
...я вот до сих пор не могу понять, как в Элеконе ( и некоторых других калькуляторах) на 561ЛН3 сделали "защёлку" адреса. Судя по логике работы, это аналог 155ЛП8 (или, в приближении, АП4/6), управляемые шинные формирователи с Z-состоянием. И где тут защёлка? Работа на задержках КМОП-чипов?
...чотабред...

Добавляю чистовую схему клона Элекона на ТТЛ. Логика работы осталась прежняя, элементы, связанные с принтером, просто исключены.

http://rw6hrm.qrz.ru/pics/ve39calc.gif

dvarkin
15.03.2020, 00:38
Работа на задержках КМОП-чипов?
На ёмкости проводов и выводов? :o


Добавляю почти что чистовую схему клона Элекона на ТТЛ.
При переключении опрашиваемой строки у одного вывода на некоторое время включается низкоомная подтяжка к +5В, ИМХО по-хорошему диоды должны быть, диоды делают и в упоминаемой выше книжке "Проектирование цифровых устройств на МК".

В свой вариант рискну поставить вместо ОК ЛА9 трехстабильный ИП6 - всё равно резисторы не пропустят ток выше ~7,4мА. Обновляю схему, тоже почти чистовой вариант: 71830

rw6hrm
15.03.2020, 09:19
При переключении опрашиваемой строки у одного вывода на некоторое время включается низкоомная подтяжка к +5В
Да и ладно, всё равно стоит внешняя подтяжка к плюсу, тут построено всё к "земельной" закоротке. Диоды хорошо, но лишние детали.

dvarkin
15.03.2020, 12:31
Да и ладно, всё равно стоит внешняя подтяжка к плюсу, тут построено всё к "земельной" закоротке. Диоды хорошо, но лишние детали.Пересмотрел Боборыкина и обнаружил неожиданные для меня предельные характеристики, стал разбираться — оказывается, в "Grokking the MCS-48 System", где я смотрел ранее, описывается HMOS версия с другими характеристиками, не совпадающими с ВЕ39/ВЕ35.
В таком случае, без диодов можно, так уж и быть :) , но во время изменения содержимого переключающих строчки выводов при зажатии двух клавиш разных строчек низкоимпедансный (~5КОм) +5В транзистор одногого вывода, включенный на время Tcy/6, коротнёт с заземляющим транзистором другого вывода (~300 Ом), что создаст ток, всё-таки превышающий предельные 0,8 мА для +5В транзистора. Кажется, можно скостылить сильной внешней подтяжкой :)

А вот в моей схеме придётся пересмотреть номинал 680 Ом резисторов :(

- - - Добавлено - - -

Хотя, при нажатии 3-4 клавиш на время Tcy/6 у ВЕ35 всё равно будут превышены предельные значения по выходному току низкого уровня.

rw6hrm
15.03.2020, 12:39
Вопрос по ИП6 из Вашей схемы - 1 и 13 выводы не перепутаны? Судя по Шило, если управлять 13 выводом, то прохождение сигнала должно быть справа налево, а желательно наоборот. Далее, а зачем резисторы 680 Ом? Если клава не опрашивается, то на выходе ИП6 должно быть третье состояние, т.е. она отключена от шины и на сигналы, направляемые на 1602, влияния не оказывает. ТМ8 в момент опроса уже защёлкнула данные и тоже её входы побоку. Только для "соблюдения" предельных характеристик?
Ну про нажатия многих клавиш - это уже "защита от дурака и детей" :), надеемся, что их мы до нашей конструкции не допустим.

dvarkin
15.03.2020, 12:49
rw6hrm, на вашей схеме точно 2ИЛИ должно стоять?

rw6hrm
15.03.2020, 13:02
Поводил пальцАми по оригинальной схеме Элекона, там, на этом месте, используется 561КП1 в виде демультиплексора. /RW и /WR инверсные, А1 всегда (!) единица, а вот по А0 выбирается соответствующее направление переключения /RW и /WR. Принтеровские порты (линии К1 и К3) исключены, соответственно запись в ТМ8/ИР27 должна быть по фронту, чтение из АП6 низким уровнем. Т.о. получаем ИЛИ без инверсии, т.е. ЛЛ1 (аналогично выбор сделан и в Аюше-Z80).
Одного инвертора да, не хватило, посему транзистор поставлен. Один элемент ЛЛ1 лишний, это меня угнетает xD
Вместо ИР27 можно поставить ИР23, но она жручая аж в два раза.

Добавлю по тактированию. Попробовал поставить в задающий генератор дроссель 110 мкГн, получил выходную частоту на ALE в 500 кГц. Т.о. тактовая частота составила около 7.5 МГц. Если ставить указанный в схеме Элекона дроссель в 50 мкГн, то генерить он будет гораздо выше, мегагерц на 10-11.
Нам столько не нужно, ставлю керамический резонатор на 4 МГц, частота на ALE 266.66(6) кГц. Для калькулятора хватит.
Соответственно мысль относительно применения 561ЛН3 - как раз на высоких частотах (500 кГц и выше при 5 вольтах питания) она и будет затягивать выходные сигналы, чего вполне хватит для псевдо-защёлкивания. Но это же такой дикий костыль по сравнению с нормальным регистром... Если ошибаюсь - поправьте.

andrews
16.03.2020, 12:59
Решил подойти к проекту с другой стороны. Нарисовал эскиз пульта с кнопками. Получилось 22 кнопки-клавиши без подсветки и 13 кнопок( две "Reset" и "Break" не опрашиваемые) из них 6 с подсветкой. Думаю, логику всю можно отладить на эмуляторе. Для него проще, я надеюсь, найти и исходники математики с плавающей запятой. Упоминаемый выше Proteus, имхо, более дружелюбен к 8051.

Sergei Frolov
17.03.2020, 08:03
Добавляю почти что чистовую схему клона Элекона на ТТЛ. Логика работы осталась прежняя, элементы, связанные с принтером, просто исключены.

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

rw6hrm
17.03.2020, 12:14
Там много чего не задействовано. Про индикацию буквы "М" мы общались (кстати, а "тире" между Е и М задействовано в качестве знака 12-разрядного числа?), выбор направления сигналов /WR и /RD также избыточен (не использована линия D1.1, которая А1, приходящая на КПшку).
Две незадействованные кнопки на схеме Элекона я вижу, эти линии выведены на переключатель режима печати. В моём варианте переключатель и клавиша "ромбик" не используются (как будто переключатель постоянно в режиме "#")

dvarkin
17.03.2020, 17:13
rw6hrm, извините, сообщение не увидел, про ИП6 всё верно, про предельные характеристики - тоже, ВЕ39 некоторое время выдаёт код операции после PROG и даже с низкоомной подтяжкой, а заземляет всего лишь примерно на целых 300 Ом! Ток шинного формирователя она может и не выдержать,
и ток КМОП контроллера экрана - тоже. А ведь ВЕ39 и без того кипятильник на ~0.1А!

rw6hrm
17.03.2020, 21:45
Кипятильник можно уменьшить, снизив тактовую до вменяемых пределов, а вот про резики на шине подумаю.., но вроде раньше на эту тему никто не парился и работало же.

rw6hrm
25.03.2020, 22:42
Блок индикации уже готов и оттестирован. Светофильтр буду ставить новый, этот пока как транспортно-царапательный используется. Слева четыре светодиода лесенкой, индицирующие ячейки памяти П1-П4. Транзисторов, кнешн, кучка, а как иначе. Да ещё и индикаторы попались с общим минусом (хотя для бешеной собаки всё равно ;))
На очереди блок вычислителя и клавиатуры.

murgatroid_79
28.03.2020, 19:52
Микросхема о 24-ногах это к155ид3 ?

rw6hrm
28.03.2020, 21:30
Она самая.

rw6hrm
01.04.2020, 15:30
В этот ср@ный карантинный день Бобик родился и желает всем щястя, здоровя и многая лiта. Потребление тока - около 200 мА.
Осталось сделать:
- корпус;
- наклейки на клаву;
- подкорректировать прошивку, чтобы в левом разряде в случае ошибки высвечивало "Е", и "минус", если число на индикаторе 12-ти разрядное. Сейчас высвечивается "точка" вместо "минуса" и нижнее подчёркивание вместо "Е".
Если первые два пункта делаются легко, то с последним вопрос. Мож кто поможет? Логику индикации расскажу.

Окончательная схема тут, http://rw6hrm.qrz.ru/pics/ve39calc.gif

Sergei Frolov
01.04.2020, 15:42
Сейчас с Элеконовской прошивкой?

rw6hrm
01.04.2020, 15:58
Да, абсолютно идентичная, только в одной ПЗУшке.

rw6hrm
04.04.2020, 14:58
Итак, за четыре дня найдено:
Адреса в ПЗУ 5Е - 6D содержат коды сегментов выводимых символов; 5Е - 67 цифры от 0 до 9, 68 "тире", 69 - 6С - невыводимые/неиспользуемые символы b, C, d, E, 6D - "пустышка" (все сегменты отключены). Если в знакоместе требуется вывести запятую, то выводимый код ORL'ится с кодом 80 если установлен флаг F0.
Адреса в ПЗУ 4А7 - 4В6 содержат коды выводимых символов в принтер, от 0 до 9 и "тире" с пробелом.
А вот где и как преобразуются символы, выводимые в крайнее левое знакоместо (нулевое), с символами "." (код 80) и нижнее подчёркивание (ошибка, код 40) - пока не выяснил. Вот и нужно код 80 заменить на 08, а 40 - на 5В, только в нулевом знакоместе...
Почему так долго - пытаюсь сделать всё в симуляторе (avset48), но так и не понял, сколько нужно срабатываний "нажатий клавиши", чтобы программа вылетела из режима сканирования в режим вычисления/отображения (по крайней мере за 40 срабатываний не вылетает, вот такая защита от дребезга). Если бы она отработала клавишу 1/х, то с символом ошибки было бы покончено.

andrews
04.04.2020, 22:36
Что делать ICE нынче баснословно дороги, даже EPROM версии.

rw6hrm
04.04.2020, 23:52
1/х отработал.
C кодом вывода ошибки разобрался наполовину - нашёл, где он подцепляется, а вот с выводом на индюкатор чуть сложнее, там стоит AND, который убирает кое-какие символы-помехи (ещё б разобраться, откуда они возникают - при окончании любого действия в левом знакоместе объявляются символы с кодами от 1 до 15, которые AND'ом и убираются). Но и убирается то, что нужно ;) Готов уже поднять ручки и сдаццо...

rw6hrm
05.04.2020, 17:03
...поправьте-ка меня пожалуйста... Необходимо прыгнуть в коде между двумя ПЗУ. Что я делаю:
начало кода в первом ПЗУ, которое в адресах 0-2047:


0056: F5 SEL MB1
0057: 44 B6 JMP 02B6H

Насколько понимаю, с учётом предыдущей команды должен быть переход на 0AB6H и симулятор мне заменяет последнюю строчку на JMP 0AB6H. Однако переход осуществляется на 02B6H... ЧЯНТД?

Sergei Frolov
05.04.2020, 17:39
А разве команда на 0057 не будет выполняться уже с другого чипа?

rw6hrm
05.04.2020, 17:57
По всем даташитам - нет. Используется именно комбинация команд SEL MBx (установка старшего бита) и JMP addr, которая занимается всеми остальными битами.

UPD. Всё, прежние вопросы сняты.

rw6hrm
05.04.2020, 22:16
Всё. Я сделялЪ.
Пожертвовал кодами выводимых на принтер символов.
Теперь спать.
И да, - есть небольшая разница в цвете индикаторов. Ну уж какие валялись под столом...

UPD. Держите прошивку, кому интересно будет повторить. Рассчитана на 4К ПЗУ, но никто не мешает залить на флеш большей ёмкости (как у меня - на 128К xD) или побить пополам для аутентичности.

UPD2. Описание сборки конструкции буду выкладывать на http://rw6hrm.qrz.ru/calc.htm

rw6hrm
10.04.2020, 13:33
...судя по посещаемости топика данный вопрос мало кому интересен, но, как человек воспитанный :rolleyes_std:, просто обязан спросить - печатка нужна? Или перспектива паялить свору транзисторов не привлекает? xD

Shumadan
10.04.2020, 16:24
...судя по посещаемости топика данный вопрос мало кому интересен, но, как человек воспитанный :rolleyes_std:, просто обязан спросить - печатка нужна? Или перспектива паялить свору транзисторов не привлекает? xD

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

rw6hrm
10.04.2020, 18:04
Ну тогда пара спойлеров.
Корпус. Метод папье-маше. Если получится...
Мысли по доделкам. Раз есть по сути контроллер, то попробуем поднять скилл программера MCS-48 и дополнить его частотомером/измерителем периода/измерителем джиттера, тем более, что софт есть и его нужно адаптировать...

Потом всем нужны будут калькуляторы)
...как бы потом не понадобился абак и счёты xD

Shumadan
10.04.2020, 19:05
Ну тогда пара спойлеров.
Корпус. Метод папье-маше. Если получится...

проще наверное будет сделать макет в Кореле и вырезать корпус из 3-4 мм фанеры в конторе лазерной резке. Потом просто склеить и покрасить. Я бы даже помог макетом, но мне нужны данные по компоновке.

rw6hrm
10.04.2020, 19:21
Предпочитаю фанеру 10 мм, но счас проблема с покупкой ножовочного полотна...

andrews
11.04.2020, 00:20
Не так много работающих плат на 8039 в сети. Если точнее практически 0. Поэтому интересно.

rw6hrm
13.04.2020, 20:59
Примеряем одёжку. На очереди шпатлёвка и покраска.
Корпус получился прочный, вроде бы 10 слоёв газетной бумаги и три слоя марли меж ними, а не гнётся вообще. Прорезать малярным ножом затруднительно. Одновременно очень лёгкий (походу основной вес будет давать нижняя крышка из фанеры :)), настоящий композит. Без эпоксидки кстате, ибо карантин.

rw6hrm
17.04.2020, 10:29
Ну вот как-то так..., до клавиш руки пока не доходят, бо самоклейки нет. Корпус бумажно-тряпошно-каменный, поскольку при шпатлёвке использовалась мраморная крошка ;). Блок питания спрятан унутре, поскольку так удобнее.
Не без косяков, но для первого опыта в технологии пойдёт.

UPD. Нашел самоклейку, вот теперь окончательно всё.

72254

Sergei Frolov
18.04.2020, 09:38
А светодиоды будете эмулировать? А то без них накопление в регистрах не очевидно - включено или нет.

rw6hrm
18.04.2020, 09:49
Светодиоды на спецрегистры? Они стоят, работают. Слева от основного индикатора, четыре прямоугольных, первый регистр сверху, четвёртый внизу, просто на фоточке это не так видно из-за вспышки. Хотя на последней, которая с надписями, слева зажжены два регистровых светодиода, первый и третий. Накопление тоже нормально работает.
Вот, снял без вспышки, горят первый и третий. На них ещё чёрные полосочки есть, от одной до четырёх.

Sergei Frolov
18.04.2020, 09:56
А, ну тогда отлично

rw6hrm
19.04.2020, 14:55
Продолжаем разговор (выкидываем медвежонка из окна - (с) Карлсон). А как бы нам ввести в готовую машинку тригонометрию? Хотя бы до пятого знака после запятой? На память приходят формулы быстрого вычисления
sin(x)=x-x^3/6
cos(x)=1-x^2/2
где x - в радианах (кстати, ещё бы переводить из градусов), но тут слабая точность получается.
А хотелось бы ещё тангенс и арки от этих функций. А ещё оба логарифма, экспоненту, Х в степени У, степенной корень, факториал,... уже 12 дополнительных функций... Есть ли ссылки алгоритмы всего этого или формулы быстрого вычисления и возможно ли это всё уместить в 4К ПЗУ? ;)

И вдогонку, мне так никто и не смог ответить, как на логических ключах сделали защёлку адреса для ПЗУ в оригинальном Элеконе (и не только в нём)? Походу всё же на "тормозах" РФ2...

rw6hrm
04.05.2020, 14:48
Коллега Pavtik с дружественного форума создал этот калькулятор в Протеусе для проверки модели MCS-48. Оно даже работает ;) Ссылка на пост http://www.nedopc.org/forum/viewtopic.php?f=91&t=19798&p=154573#p154572

Судя по всему, схему можно ещё упростить без потери качества работы, выкинув ЛЛ-ку!

andrews
04.05.2020, 15:16
для столь слабого процессора тригонометрия и прочие перечисленные Вами функции только табличные! Так что думайте, как большую память подключать. Ну или какое-то мощное MCU в качестве арифметического расширителя. Последнее, кстати, предпочтительнее, так как слабых математически и микроконтроллеров и процессоров очень много. А функций стандартных - берите справочник Корна (https://lib-bkm.ru/load/96-1-0-209). Аппроксимация рядами скорее всего не самое лучшее решение.

rw6hrm
07.05.2020, 08:26
Вместо 1816ВЕ39/49 можно использовать КР/КА1835ВЕ39/49, в этом случае ток потребления контроллера снижается в 10 раз.

andrews
07.05.2020, 17:02
Вместо 1816ВЕ39/49 можно использовать КР/КА1835ВЕ39/49, в этом случае ток потребления контроллера снижается в 10 раз.у меня КР. Поэтому и цена была подороже.

dvarkin
08.05.2020, 09:08
Продолжаем разговор (выкидываем медвежонка из окна - (с) Карлсон). А как бы нам ввести в готовую машинку тригонометрию? Хотя бы до пятого знака после запятой? На память приходят формулы быстрого вычисления
sin(x)=x-x^3/6
cos(x)=1-x^2/2
где x - в радианах (кстати, ещё бы переводить из градусов), но тут слабая точность получается.
А хотелось бы ещё тангенс и арки от этих функций. А ещё оба логарифма, экспоненту, Х в степени У, степенной корень, факториал,... уже 12 дополнительных функций... Есть ли ссылки алгоритмы всего этого или формулы быстрого вычисления и возможно ли это всё уместить в 4К ПЗУ? ;)

И вдогонку, мне так никто и не смог ответить, как на логических ключах сделали защёлку адреса для ПЗУ в оригинальном Элеконе (и не только в нём)? Походу всё же на "тормозах" РФ2...Тригонометрию и многое другое можно посчитать с известной точностью с помощью рядов Тейлора, упомянутых в любой книжке по матанализу. У меня в кратком курсе математического анализа Берманта Арамановича есть подпараграф 195 "Приближенное вычисление значений функций", где есть пример вычисления значения функции и ошибки. Для вычисления разных рядов (не только просто тригонометрия), кстати, МК56 очень подходит, можно взять что-то из его интерфейса.
https://www.webmath.ru/poleznoe/images/diff/razlozhenie_v_rjad_maklorena_2041.png

b2m
08.05.2020, 10:55
Тригонометрию и многое другое можно посчитать с известной точностью с помощью рядов Тейлора
При этом нужно не забывать о сходимости ряда и приводить аргумент к значению, наиболее близкому к нулю. Например для "е в степени х" необходимо целую часть степени считать в цикле, а дробную - при помощи ряда Тейлора.

dvarkin
08.05.2020, 16:42
Вместо 1816ВЕ39/49 можно использовать КР/КА1835ВЕ39/49, в этом случае ток потребления контроллера снижается в 10 раз.
Есть ещё 1830, в чём отличие от 1835?



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


Аппроксимация рядами скорее всего не самое лучшее решение.
Только что увидел. Если операции с плавающей точкой уже есть в прошивке, то почему бы и не попробовать? ;)

andrews
08.05.2020, 17:20
Если операции с плавающей точкой уже есть в прошивке, то почему бы и не попробовать?арифметически ? и сколько они по времени выполняются? А это "базисные операции". И потом, чем больше цифр после запятой, тем медленнее выполнение( для слабо сходящихся рядов тем более). А у выборки из таблицы и интерполяции таких проблем нет. Причем функции могут быть любые под номерами. Впрочем это уже скорее для суперкалькулятора.

rw6hrm
08.05.2020, 17:50
Есть ещё 1830, в чём отличие от 1835?
...в принципе тот же КМОП... Но в серии 1835 есть только ВЕ39/49, а в 1830 - 35, 48, 39, 49

оу, есть ещё серия 1850 с полным набором, в том числе ВЕ40 и ВЕ50 с 256 байт ОЗУ.

Кстати, отписался на Хабре с уклоном в изготовление корпуса, https://habr.com/ru/post/500794/

dvarkin
08.05.2020, 17:52
арифметические? и сколько они по времени выполняются? А это "базисные операции". И потом, чем больше цифр после запятой, тем медленнее выполнение( для слабо сходящихся рядов тем более). А у выборки из таблицы и интерполяции таких проблем нет. Причем функции могут быть любые под номерами. Впрочем это уже скорее для суперкалькулятора.

ну, при минимально допустимой частоте 1МГц будет выполнено 1000000/15≈66666 операций за секунду — у меня впечатление, что всё уложится в рамки приличия

andrews
08.05.2020, 23:10
ну, при минимально допустимой частоте 1МГц будет выполнено 1000000/15≈66666 операций за секунду — у меня впечатление, что всё уложится в рамки приличия почти 67 000 операций с плав.запятой на этом MCU? Дас ист фантастиш! У 8080 помнится цифры были гораздо скромнее

rw6hrm
09.05.2020, 20:52
Скорее всего просто операций. У ВЕшки ж все команды исполняются максимум за два такта, большинство за один. А 8080 - 4-6 на команду, потому и скромнее. ИМХО.

- - - Добавлено - - -

И кстати, dvarkin, как у Вас дела со схемой?

andrews
09.05.2020, 23:27
У них обоих нет даже 8 битного деления и умножения! А плавающая запятая это нормализация и явно более 8 бит мантисса, затем операция с порядком знаковая и результирующий знак всего действия. В общем не разбирался в дизассемблированном коде, но думается с полсотни операций там точно есть для 8080 на умножении и делении с пзт, а для ВЕ35/39 и поболее. У 8051 8 битное деление и умножение есть, но воспользоваться ими для 16 и 32 бит не так-то просто.

dvarkin
10.05.2020, 00:14
Скорее всего просто операций. У ВЕшки ж все команды исполняются максимум за два такта, большинство за один.
Да, просто операции, один цикл ВЕ48 - 15 тактов, 66666 циклов в секунду как минимум.

дела со схемой
72536
Потихонечку всё-таки меняю, сократил число корпусов и кнопочек. Ввод HEX чисел планирую делать четырьмя основными кнопочками и четырьмя кнопочками регистров.
Дешифрация получилась полная, так что конфликт во время ANLD и ORLD исчез (но ОМЭВМ с внешней ПЗУ всё же можно случайно сломать записью в порт 0).
Потому и резисторы просто килоомные - их ток на несколько наносекунд во время начала операции чтения, думаю, вообще не критичен.
И важный момент - ЛИ1 1533 серии т. к. 555 может не успеть вовремя защёлкнуть внутренний лэтч LCD при записи в него.
Ещё обнаружил интересное свойство пошагового режима - на схеме HW breakpoint - этот контакт можно присоединить к чему-то на плате и при пошаговом выполнении ВЕ останавливаться не будет, пока на этом контакте "0".
И интересный вопрос - вместо К555КП11 планирую поставить завалявшийся IN74AC257 - нужно ли ставить подтяжку для КМОП входов, если незагруженный 555/1533 выход выдаёт достаточно для AC входа?
А впрочем - собираюсь собирать, просто в последнее время делал курсач - нашёл электромеханическую печатную машинку на 8051 и веселюсь)

dvarkin
10.05.2020, 14:18
Для синуса возьмём 5 первых членов, это даст ошибку не более 0,0000036 для аргумента до π/2, при этом будет выполнено 24 элементарные операции с пзт, которые, согласно руководству Элекона, выполняются в среднем не более 0,2 сек, итого 4,8 сек. Хотя ещё есть погрешность в этих самых элементарных операциях. И сколько-то времени уйдёт на приведение аргумента к околонулевому (до π/2) значению.
В принципе, вычисление ряда можно оформить без цикла, а факториал представлять как константы, тогда будет 3,2 сек.

Sergei Frolov
10.05.2020, 19:48
Cordic попробовать не хотите?

andrews
11.05.2020, 18:58
Для синуса возьмём 5 первых членов, это даст ошибку не более 0,0000036 для аргумента до π/2, при этом будет выполнено 24 элементарные операции с пзт, которые, согласно руководству Элекона, выполняются в среднем не более 0,2 сек, итого 4,8 сек. Хотя ещё есть погрешность в этих самых элементарных операциях. И сколько-то времени уйдёт на приведение аргумента к околонулевому (до π/2) значению.
В принципе, вычисление ряда можно оформить без цикла, а факториал представлять как константы, тогда будет 3,2 сек. тоже не айс. Не раздражает время выполнения <0.3 сек

- - - Добавлено - - -


Cordic попробовать не хотите? а что есть пример реализации на 8039?

Sergei Frolov
11.05.2020, 19:33
а что есть пример реализации на 8039?

Тут нужен не пример реализации - человек сам с головой и опытом 8039, а теоретические основы.

rw6hrm
11.05.2020, 19:34
Не раздражает время выполнения <0.3 сек
До одной секунды, если будем точнее (в Элеконе самая длительная операция - вычисление квадратного корня, по паспорту до 0.6 сек). Слегка лечится увеличением тактовой частоты до максимально возможной.

Sergei Frolov
11.05.2020, 19:50
Книга про Cordic наша
http://en.bookfi.net/book/544528

- - - Добавлено - - -

А по этой книге я когда-то сам функции реализовывал
https://pl.b-ok.cc/book/2453169/d4986b

- - - Добавлено - - -

Вот в этом калькуляторе
https://sfrolov.livejournal.com/39933.html

andrews
11.05.2020, 21:09
До одной секунды, если будем точнее (в Элеконе самая длительная операция - вычисление квадратного корня, по паспорту до 0.6 сек). Слегка лечится увеличением тактовой частоты до максимально возможной.
честно сказать с пзпт на уровне ассемблера никогда не работал. Интересно, что можно выжать из 8039, потому что эти характеристики можно будет взять за точку отсчета. Еще конечно можно иметь в виду две альтернативы: 1) работу с табличными значениями и линейной или иной интерполяцией 2) работу с внешним матсопроцессором( только в этом случае надо найти максимально дешевый вариант, так как у STM32 есть конечно MCU c FPU, но цены у них космические. Ну или если внешняя FPGA, то тоже нужна максимально дешевая без излишеств. Кстати как соотносится время выполнения пзпт квадратного корня одной переменной, двух переменных sqrt(x^2+y^2), и синуса/косинуса?

murgatroid_79
14.06.2020, 09:32
У нас был один калькулятор на ВЕ39
http://www.leningrad.su/museum/show_calc.php?n=633

Сергей,у Вас же в музее ещё интересный экземпляр имеется-Электроника мс 1104
И,тоже,на кр1816ве39...или ве35
http://www.leningrad.su/museum/show_calc.php?n=133
Выносная клавиатура,порты расширения,часы...

Судя по клавиатуре в нём реализована тригонометрия!!!
P.S.:для фаната этот кальк лежит на Авито:
https://m.avito.ru/pervouralsk/kollektsionirovanie/elektronika_ms_1104_1833786390

Sergei Frolov
14.06.2020, 09:46
Там два КР1816ВЕ35, они расширяют систему команд.
А систему команд задают обычные калькуляторные чипы К145ИК1302 и К145ИК1303 (тригонометрия). То есть это МК-56 с внешним входом/выходом и большим расширением.

Я делал примерно то же самое, когда мастерил свою плату расширения, только без портов и ADC.
https://habr.com/ru/post/467501/

andrews
14.06.2020, 15:04
обычные калькуляторные чипы
которые и были созданы для максимальной защиты интеллектуальной собственности. Китай, наворовавший сам полмира сейчас очень любит заказные микросхемы всюду ставить, даже в детские игрушки. Впрочем, для коллекционеров, заинтересованных в непрерывном росте стоимости их коллекций, это конечно благо. Но для пользователей халява и открытость скорее благо(возможность понимания с чем работаешь, возможность модернизаций - чем зло(вирусы))

dvarkin
17.06.2020, 10:35
интеллектуальной собственности
Долой частную интеллектуальную собственность, даёшь опенсорс! ... соединяйтесь!

Допаял и отладил всё-таки устройство с 1602: https://i.ibb.co/y01CX9L/IMG-20200613-224824.jpg (https://ibb.co/y01CX9L)

Как видите, экранчик всё-таки заработал, кнопки тоже работают (in74ac257 без pull-up на входе с ТТЛ - работает, но пока не проверял надёжность срабатывания). Кондёры по питанию стоят везде, на схеме пока нет.

Изменения схемы: использовал РУ8 вместо РУ10 - последнюю выбирал из-за путаницы с распиновкой (сначала думал у РУ8 W/R нужно выставлять как у 1602 вместе с адресом), также чуть правил дешифрацию 1602 - сигнал выбора регистров R/W получается инверсным относительно аналогичного с ВЕ: 72918.

Вот такая получилась заготовка для каких-нибудь приборов с кнопочками, экранчиком и кучей GPIO.

Сейчас нужно начинать делать прошивку для игр с системой команд - собственно как калькулятор уже есть Элекон, так что хочу сосредоточиться на чём-то вроде набирающих популярность переделок ЮТ-88 или IMSAI. Хочу сделать ввод шестнадцатеричных чисел, через сочетания восьми клавиш программно, вроде, даже легче, с другой стороны порты самой ВЕ можно использовать для выбора колонок матричной клавиатуры без защитных диодов - матрицу 3(ВЕ) на 8(КП11), в принципе, можно сделать, но запарно, да и 4 бит интерфейс смешивает с GPIO, подумаю.

GPIO у ВЕ стараюсь не трогать - пусть останутся для проектов на базе заготовки. Также для проектов 8х4бит порты только на вывод можно устроить с помощью операций ANLD ORLD программно, дешифратора 3-8 и восьми ТМ8 (и шинного формирователя, если ТМ8 не 1533) аппаратно.

rw6hrm
17.06.2020, 10:55
Тогда, при готовке прошивки, мож не трогать внутренние ячейки ОЗУ выше 3F? Чтобы вместо ВЕ39 можно было бы применять ВЕ35/48...
По играм можно ознакомиться с habr.com/ru/post/416865/ .

andrews
17.06.2020, 16:13
Лучше, имхо оставить ВЕ39 и придумать нормальную шину расширения(вон целый порт свободен). На нее чтобы можно был повесить и расширитель арифметики, и саунд, и дисплейчик хотя бы 128x64(они самые массовые и недорогие)
например 72922 и саунд ( на чем?)
Дабы оправдать гордое название ПЭКВМ.
Внешняя память у меня пока была в задумке 537ру10, но есть и 537ру17 и 6264( что лучше под суперкондер по потреблению не знаю) А у 537РУ8 какой буржуйский аналог, TC5516? Хотя и 537РУ8 есть по сходной цене в ЧИП и ДИПе. Были когда-то и у меня, но вроде я их отселектировал, оставив только РУ10.

rw6hrm
17.06.2020, 19:47
Если 128х64, то эмулятор CHIP8 прям просится. Только иметь в виду, что "массовый" не значит "одинаковый во всём" - эти дисплеи имеют две различные шины управления и при дистанционной покупке они практически никак не определяются, а только при получении.
Бипера хватит всем. Никаких ВИ и AY.
РУ9 самым лучшим образом стыкуется с ВЕшками, без дополнительного регистра.
Один порт пусть остаётся свободным, как раз для расширения страждущим (пусть сами ваяют что хотят, зачем автора напрягать). А вот ВР43 необходим, и не только для расширения памяти.

andrews
17.06.2020, 20:54
Центральная плата, если допускаются модули расширения, должна задавать стандартный интерфейс и ее ПО должно обеспечивать связь с периферийными модулями. Бипер будет загружать MCU, а на периферийном модуле может быть свой МСU проигрывающий муз. фрагмент по номеру, длительности, кол-ву нот, n-раз или циклически до сигнала отмены, приостанова, продолжения, перезапуска. Это более интересные возможности для программирующего. Графический дисплей впускает геймера, геймдевелопера, дизайнера, саунд модуль впускает в круг пользователей и разработчиков музыкантов. Есть люди для кого важнее зрительное восприятие, для других слуховое. Если это ПЭКВМ (программируемая клавишная вычислительная машина), то отсекать их нелогично. Автор может этим и не заниматься, согласен, но хотя бы выводы портов в воздухе бросать не надо. ВР43 пусть будет, хотя достать их не так просто D8243 на eBay вроде светят.

- - - Добавлено - - -


две различные шины управления
я думал стандартная шина, в каждом и последовательная и параллельная

- - - Добавлено - - -


РУ9 самым лучшим образом стыкуется с ВЕшками, без дополнительного регистра
HM6116LP-3? РУ9 никогда не встречал

dvarkin
17.06.2020, 22:27
дисплейчик хотя бы 128x64
Я за грамотно продуманный текстовый интерфейс. Вешать на микроконтроллеры графику - не моё) И ВЕ не осилит - в её пространстве ПЗУ только 4 объёма по 128х64 бит. Есть поделки на AVR, там оно смотрится, это да. Ещё для полной отечественности можно поставить дисплей от МЭЛТ, даже если у них и есть графические, то не по карману относительно текстовых)


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

целый порт свободен
Значит РВВ работает)


537РУ8
Я смотрю книжки "Микросхемы памяти и их применение" и "Полупроводниковые БИС запоминающих устройств". Судя по моим экземплярам ИС, РУ10 вроде как белорусская микросхема. РУ8 - российская, ангстремовская, отличается чуть меньшим быстродействием, достаточным напряжением хранения информации и другой распиновкой выводов адреса, совместимой с РФ5 (то есть вместо РУ8 можно спокойно ставить РФ5 без сорок с адресами).



не трогать внутренние ячейки ОЗУ выше 3F
так и планируется, но ничего не обещаю



РУ9 самым лучшим образом стыкуется с ВЕшками
А вот ВР43 необходим, и не только для расширения памяти.
РУ9? Может, РУ55?
ВР43 для расширения памяти? Он же РВВ, место которого уже занято)

dvarkin
17.06.2020, 22:45
Центральная плата, если допускаются модули расширения, должна задавать стандартный интерфейс и ее ПО должно обеспечивать связь с периферийными модулями.
Это уже замах на убийцу спектрума)
По виду интерфейса я же стремлюсь делать среду программирования как в МК56. И чтобы машинные коды из ОЗУ можно было выполнять. И на отечественной элементной базе.

Вот на Z80 можно много что замутить.

rw6hrm
17.06.2020, 23:24
РУ9 самым лучшим образом стыкуется с ВЕшками

Позор на мои седины - 537РУ8. ALE подаётся на 18 ножку. В качестве примера - АОН из Радиолюбителя 1994/3, стр. 36.

И да, графику этот чип не потянет. Не те объёмы памяти и скорострельность. Не нужно это ему. 6538 разве что подключить, в качестве "текстово-графического" контроллера, но это будет ещё один Денди без программ...

andrews
17.06.2020, 23:59
У вас желание всем загрузить только ВЕ39, поэтому и не потянет. Вам же писали, что даже в советских программируемых калькуляторах основную работу делали специализированные чипы 145 серии, а ВЕ39 всем управляли, обрабатывали нажатия на кнопки и отображения на дисплее. Полностью на всем советском остаться не удастся. Но можно задействовать по максимуму. Конечно OPEN SOURCE проект интересен, тем более, что ничего подобного на советском рынке не существовало. Просто тогда нельзя было купить графический дисплей 128x64 по цене 6 MCU. А 8 битные компьютеры предполагали изначально подключение к телевизору. "Убийцей 8 битных компов" оно не будет, но все же будет больше, чем программируемый калькулятор Электроника Б3-xx.

dvarkin
18.06.2020, 14:52
ALE подаётся на 18 ножку. В качестве примера - АОН из Радиолюбителя 1994/3, стр. 36.
Какое-то подозрительное решение, работать с первого взгляда не должно, но раз опубликовали, то всё-таки как-то должно?:confused:
Ну и у РУ8 и РУ9 одна распиновка, если верить справочникам...

Вообще, я запутался с СОЗУ. Решил проверить РУ8 - не получилось - может, не рабочая, а может, действительно, W/R нужно вместе с адресом подавать, в разных справочниках по разному.
Решил проверить РУ10 - работала через раз, но когда не работала - на экране появлялся мусор, а РУ10 нагревалась порядочно, через 8 канальный Saleae проверил сигналы управления - в порядке, но пока проверял, РУ10, видимо, успела поломать что-то ещё (а может сломала до того как я проверил).
:(
P.S.: рано пожаловался на РУ10 - нашёл непропай ИР22 OE.
P. P. S.: но РУ10 всё равно иногда кипятильник и мусор на экран кидает.


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

Shumadan
18.06.2020, 16:24
Решил проверить РУ10 - работала через раз, но когда не работала - на экране появлялся мусор, а РУ10 нагревалась порядочно, через 8 канальный Saleae проверил сигналы управления - в порядке, но пока проверял, РУ10, видимо, успела поломать что-то ещё (а может сломала до того как я проверил).
:(
P.S.: рано пожаловался на РУ10 - нашёл непропай ИР22 OE.
P. P. S.: но РУ10 всё равно иногда кипятильник и мусор на экран кидает.



вот здесь что то подобное описано https://zx-pk.ru/threads/20681-yut-88-protsessornyj-modul-platy-dokumentatsiya.html?p=660312&viewfull=1#post660312

andrews
18.06.2020, 17:29
Ее просто подшибло очевидно, а теперь возможно тиристорный эффект. У нас отлично работали микросхемы партии 8805 завода Транзистор
Беларусь, Минск КР537 РУ10 с КР1533ИР22 на системе с КР1816ВЕ51 правда.

dvarkin
18.06.2020, 18:04
Всё так, при включении на шине управления Saleae показывает какой-то (видимо, созданный ВЕ!) хаос, тогда РУ10 может заклинить и до выключения питания она станет кипятильником, а может и не заклинить и всё норм.
Хотя я даже электролит на reset поставил.
У меня, вроде, интеграловская версия РУ10 - значок с тремя палочками в кружочке (тройной интеграл по контуру :) ?!) 9105.

andrews
18.06.2020, 20:25
А без ОЗУ система как себя ведет? Если тест сделать линейный зацикленный и вижу на схеме Вы ножку пошагового выполнения бросили в воздухе, как и INT/? Хорошо ли это? И на Reset кнопки нет. А пошаговый режим хорошо бы было использовать при наладке и отладке.

- - - Добавлено - - -


вот здесь что то подобное описано
КР537РУ25 интересная микросхема, особенно здорово, что она в режиме хранения потребляет ток в 40 раз меньше. Только она в другом корпусе?

Shumadan
18.06.2020, 21:49
Ее просто подшибло очевидно, а теперь возможно тиристорный эффект.

вот еще как подтверждение и причина:

"Дело в том, что для многих типов КМОП микросхем, и в частности для 537 серии, существует опасность теплового пробоя p-n переходов в кристалле из-за «тиристорного эффекта».Сущность этого явления заключается в том, что при повышении напряжения в шине питания выше нормы из-за бросков тока при включении и влияния индуктивностей шин, а также при превышении входным сигналом напряжения питания может появиться эффект неуправляемого нарастания тока стока, близкий по механизму к аналогичному явлению в тиристорах в момент их переключения. Поскольку в КМОП структурах отсутствуют токоограничивающие резисторы нагрузки, то нарастание тока приводит к развитию теплового пробоя в кристалле и, как следствие, к неисправности микросхемы. Подобного результата можно ожидать и при перегрузке выходов микросхемы, что в процессе наладки вполне вероятно."

dvarkin
18.06.2020, 22:28
без ОЗУ система как себя ведет
Идеально, иногда пробел перед выводом на экран.


ножку пошагового выполнения
Я подцепил к ТМ2, но дело в том, что я затираю NOPами старый код на 2716. Брекпоинт из схемы с ТМ2 тоже сложно поставить - нужно сигнал выдержать до ALE. Да и есть Saleae.

P. S.: однако, при запуске сразу в режиме пошагового режима РУ10 работает нормально, и после переключения в режим прогона - тоже.
P. P. S.: а нет, РУ10 продолжает греться при запуске в режиме пошагового режима. Вывод - тиристорный эффект во время хаса при запуске.


INT/
Бросил в воздухе, да. Соединение к 5В не решает проблему и пока прерывание отключено это ни на что не влияет.


Reset
Большинство схем без кнопки, но, действительно, надо бы сделать.


537РУ8. ALE подаётся на 18 ножку. В качестве примера - АОН из Радиолюбителя 1994/3, стр. 36.
Поискал информацию - действительно, есть такая HM-6516 с защёлками адреса, где вместо строба на 18 выводе - вход защёлки, но вот чей она аналог? Справочник Козака (http://inp.nsk.su/~kozak/mem/mem02.htm) утверждает, что РУ9 и РУ10, в то же время в статье Радиолюбителя и в ЧД аналогом РУ8 полагается HM-6516, что кажется более правдивым.

dvarkin
19.06.2020, 09:28
Заинтересовала тема РУ8 - видимо, аналога HM-6516, с защёлками. При включении по схеме РУ10 она, конечно, не срабатывает на запись, но и никогда не входит в ступор при запуске.
И, кто бы мог подумать, новя версия схемы: 72936.

ЛИ3 так и напрашивалась уже давно: её не нужно делать 1533.
Если отпадёт надобнось в РФ5 (например, если поставить ВЕ48), то после небольших изменений проводников в схеме, действительно, можно избавиться от ИР22.
Только при этом РУ8 займёт всё адресное пространство.

Осталось аккуратно выпаять КР1533ЛИ1, которую поставил без панелки за неимением нужного количества панелек.

andrews
19.06.2020, 14:15
http://dplm2008.narod.ru/str/komplects/ozy_stat.htmlвот отсюда
"Для -многих типов КМДП-микросхем,. и в частности для микросхем серии К537, существует опасность теплового пробоя р-п переходов в кристалле из-за «тиристорного эффекта».
Сущность этого явления заключается в том, что при повышении напряжения в шине питания до 11 ... 12 В из-за бросков тока, при включении и влияния индуктивностей шин-, а также при превышении входным сигналом напряжения питания внутри кристалла активизируются .паразитные биполярные р-п-р-п структуры и из-за наличия положительной обратной связи по. цепям токов утечки может появиться эффект неуправляемого нарастания тока стока, близкий по механизму к аналогичному явлению в тиристорах в момент их переключения. Поскольку в КМДП-структурах отсутствуют токоограничивающие резисторы нагрузки, то нарастание тока приводит к развитию теплового пробоя в кристалле и, как следствие, к неисправности микро*схемы.
С повышением уровня интеграции микросхем опасность возникновения в них тиристорного эффекта увеличивается.<> в некоторых микросхемах серий К.537, например КР537РУ6 и др! В структурах этих микросхем сформированы так называемые «охранные кольца», шунтирующие паразитные транзисторы и засчет этого устраняющие тиристорный эффект. Для тех микро*схем, у которых защита отсутствует, необходимо предусматривать конструктивные меры предупреждения тиристорного эффек*та: снижать индуктивность шин питания, не допускать близкого расположения с сильноточными микросхемами и т.д. [16].
При применении микросхем памяти, изготовленных по КМДП-технологии, в частности микросхем серии К537, необходимо соблюдать порядок включения питания и подачи входных сигналов: вначале должно быть включено напряжение питания. При выключении блока ОЗУ следует снять входные сигналы (адресные, управляющие и информационные) и затем отключить источник напряжения питания. Необходимо обеспечить также выполнение условия, по которому напряжение сигналов не Должно превышать напряжения питания микросхемы.<>Микросхемы К537РУ14 и КР537РУ13 являются асинхронными. За этим исключением все микросхемы серии К537 являются тактируемыми: в режимах записи и считывания необходимо сигнал CS подавать импульсом, а сигнал W/R может иметь форму уровня напряжения или импульса" и по ссылке все подробно расписано. У меня на руках остались наши поделия 90-х на 8051 с ру10 и на мгтф и на разведенной плате. Сейчас попробую восстановить схемы. Проблем не было. Все работало около магнетрона.

dvarkin
19.06.2020, 16:15
Это же вышеупомянутая книга Микросхемы памяти и их применение.
Ну, тиристорный эффект так тиристорный эффект. Кстати, питание я подаю с USB БП от смартфона — интереса ради припаял стабилитрон 5v6 скачки по питанию сглаживать, но РУ10 снова за своё. Шунтирующие конденсаторы у неё электролит и керамический рядом. Всё-таки с РУ10 интересно разобраться для других проектов. С другой стороны — писали же, что из-за конфликта на шине. Почему этот конфликт возник у меня — да, интересно.

andrews
19.06.2020, 17:04
У нас если что на шине питания ставился металлический стабилитрон кс156а катодом на +5V, анодом на землю и параллельно качественная оранжевая км-? 1 мкф Тиристорный эффект отсутствовал. КРЕН5 перед этим само собой. Это на монтажке под мгтф. Что-то там еще вблизи ру10, срисую, потому как схемы пока не разыскал

dvarkin
19.06.2020, 17:51
Давайте, у самого ОКА-102К с барахолки стоит для будущих поделок, так что тема интересна. Ну и попадает под определение ЭКВМ)

Оперативненько реализовал схему с ЛИ3 — РУ8 работает без нареканий, на экран выводится смайлик из неё:https://uploads.tapatalk-cdn.com/20200619/276902034872bff56820cc7bc7a1453a.jpg

andrews
19.06.2020, 19:16
У нас был пульт управления магнетроном. Сам датчик СВЧ мощности и УУ магнетроном на XC705K1 Motorola стояла рядом с жуткими полями, но не глючила! А с этого пульта задавали режим работы и отображали разные параметры. Сперва была линейка 7-сегментных индикаторов, потом подключили однострочный ЖКИ дисплей с подсветкой. Эта макетная плата на мгтф, ОЗУ какое-то время сохранялось от электролита. По уму надо было литиевый аккумулятор поставить, но тогда в 1994 году это была редкость на такого рода устройствах. Хочу попробовать заменить кварц на 11.0592 МГц , чтобы можно было цеплять на COM-порт PC, и сделать музычку на таймере и трех выводах порта, чтобы играла аккорды. Клавиатуру пока планирую на 29 кнопках.
72937

dvarkin
20.06.2020, 12:33
rw6hrm, попробовал на бредборде через PAULMON2 проверить лэтчи на РУ8 - у меня не вышло (хотя под конец запутался с проводочками) - вы проверяли РУ8 без ИР22?

andrews, если будет клавиатура, то планируется ли экран? Какой предлагается интерфейс пользователя?

rw6hrm
20.06.2020, 21:07
dvarkin, в конце 90-х я видел эту приставку в рабочем состоянии, именно на РУ8. Сам не проверял.

dvarkin
21.06.2020, 09:51
Может, там использовалась ИР22? В схеме с ИР22 можно просто поменять РУ10 на РУ8.

andrews
21.06.2020, 23:35
если будет клавиатура, то планируется ли экран? Какой предлагается интерфейс пользователя?
пока просто восстанавливаю старый макет на 8051. Схему нашел на листе бумаги. Теперь прозвонить монтажку и быть может перенесу в Proteus 8. Тем более там в примерах есть нечто аналогичное, но без последовательного интерфейса. Сейчас просто в один ковыряюсь дома в перерывах между прогулками с полуторогодовалой дочурой. Поэтому все с черепашьей скоростью. Клавиатура. Только там не все клавиши правильно "надпечатаны". Что делать? Пришлось китайские наклейки клеить какие были. Основная идея: иметь два основных регистра X и Y, левую и правую скобку, стрелки левую и правую, кнопку для задания пользовательской функции и перехода в режим ввода кодов. Цифры все шестнадцатиричные от 0 до F и к ним дополнительно G и H(для режима ввода нот, левая и правая стрелка для ввода диеза и бемолей). Кнопки арифметических действий и возведения в степень. По поводу тригонометрии пока не знаю, надо смотреть какие есть библиотеки арифметики. Программы пользователя скорее всего только в машинных кодах. Для другого нужно подключать символьный дисплей. Этой платы с подключенным символьным дисплеем и исходников пока что у себя не нашел. Возможно и выбросил. В общем сыро все и далеко от Ваших достижений. Разыскал еще одни гнезда снп, но вилки придется докупать( скорее всего тоже выкинул, не думал, что пригодятся когда-нибудь). Теперь можно добавить светодиоды на клавиатуру и разъем снп поставить. Правда после этого придется спаять кабель
72948

dvarkin
22.06.2020, 14:13
На 8052 от Интела был интересный проект (https://www.dos4ever.com/8031board/Basic52Manual.pdf) (есть ещё сабж (https://zx-pk.ru/threads/26098-mcs-52-basic.html)).

По теме ввода: нашёл один AVR проект (скорее, компьютер) с 8 клавишами, FIGnition (https://sites.google.com/site/libby8dev/fignition/documentation/use-it) - через эти восемь клавиш вводится весь алфавит. И они все не подписаны, но на NTSC/PAL экране выходит подсказка. И на машине - интерпретатор Форта. Вот такое вот даже бывает.

Сам пока остановился на следующем принципе ввода: за каждой одной клавишей закреплены два шестнадцатеричных символа - первый вводится при одиночном нажатии, второй - при двойном: как на клавишных сотовых. Команды управления - как одновременное нажатие двух клавиш.

Опрашивать клавиатуру планирую по таймеру - всё равно прерывание перескакивает на первый банк памяти программ. Таймер с кварцем на 6MHz может отмерять максимум примерно 49 Гц, выставив на перезагрузку 5 получается 50 Гц. Тогда для пользовательской программы можно сделать и 8 бит регистр, итерирующийся каждый период таймера. И раз удобные процедуры вывода тоже планируются, то ничего не мешает сделать два экрана - один общего назначения, другой - системный монитор чего-либо, обновляющийся по таймеру максимум 50 раз в секунду (1602 сможет хранить и отрисовывать в своей памяти оба параллельно) и открывающийся по команде управления, не останавливая пользовательскую программу - а-ля многозадачность,

Хоть ассемблер сделать не получится, по небольшому опыту работы с МК-56 могу сказать, что знать что ввёл иногда хочется без таблиц, поэтому планирую сделать дизассемблер (и справочный лист команда-мнемоника?) прямо на машине.

Вот такие вот планы.

andrews
22.06.2020, 17:23
планирую сделать дизассемблер (и справочный лист команда-мнемоника?) прямо на машине
это очень разумно! особенно разглядел на схеме, что пошаговый режим отладки у Вас намечается. Я про это думал так. Что один режим это мы программируем функцию( совсем уж шикарно процедуру) пользователя - это как бы "верхний уровень" близкий к традиционным программируемым калькуляторам, но если есть функции и процедуры введенные пользователем в машинных кодах, то как бы и им научится передавать результаты вычислений ( и/или вводимые числа с клавиатуры), а результаты от них возвращать через оперативные регистры( у меня X и Y ). Но чтобы в этом был больший интерес, нужна какая-то периферия( или еще лучше как у Вас дисплей, и к его процедурам точки входа). Нотки же у меня это конечно баловство, но у 8051 3 таймера, то почему бы 1 не использовать? Или тогда ЦАП на ШИМ с интегратором. По поводу ссылок, лучше бы на библиотеку пзпт с использованием машинных команд MUL AB и DIV AB. Они все же ускоряют время выполнения операций. Бейсик в пзу для меня пока сложно, спецфункции и тригонометрия тоже

RCgoff
13.09.2020, 10:30
Всем привет, активно разрабатываю на MCS48.
https://www.instagram.com/p/BxNXX_YHihV/ - индикатор ЖКИ подключен, используя только один вывод порта и интерфейс расширителя, на который (и на его строб) подцеплен сдвиговый регистр (расположенный с обратной стороны индикатора, см. тут https://www.instagram.com/p/BUEhU9OB9qA/ ). Вывод выполняется по MOVD P4. ПЗУ 558РР3 - обходимся без защелки адреса.

https://www.instagram.com/p/B4pfGIqDMxY/ - перешитый музыкальный звонок на 1816ве48 (дизассемблировал и переделал мелодию на Что такое осень)

https://www.instagram.com/p/BmoSjSbHBCm/ - компьютер на ВЕ48, РУ55 и РФ10: программируется тумблерами (программа вводится в РУ55 с помощью монитора, зашитого в РФ10). Все микросхемы КМОП, потребление на частоте 150 кГц порядка 2ма без учета тока светодиодов. Исходный текст монитора https://github.com/rcgoff/pokroller/

Делал также простейший компьютер с ручным программатором на 4 ис: ВЕ35/48, РУ8, 1608РТ1 (это как 155ре3, но с тремя состояниями) и 1556ХЛ8. Программа набиралась тумблерами, а в ПЗУ размещался просмотрщик памяти с выводом на светодиоды, ему как раз хватило 32 байта. РУ8 без защелки адреса. Вся логика и 5-разрядная защелка адреса для ПЗУ уместились в ПЛМ.

Тестировал РУ8 без защелки адреса. Не верьте книгам-справочникам по ОЗУ! Она не идентична РУ10! Основное отличие: (кроме защелки адреса): у нее не CS и OE, а два CS, которые работают по И. Правильное описание имеется в книге Пухальский, Новосельцева "Проектирование дискретных устройств на интегральных микросхемах"
Т.е. нет способа принудительно задать 3-е состояние на выводах. У меня с одним блоком питания схема на РУ8 без защелки работала, с другим - нет.

Полностью дизассеблировал прошивку клавиатуры ЕС1840 (на 1816ВЕ48). В ней была ошибка, и исправил ее. https://github.com/rcgoff/es1840kb/

Sergei Frolov
13.09.2020, 10:43
А что за ошибка?

RCgoff
13.09.2020, 10:52
А что за ошибка?
Если перезагрузться по Ctrl-Alt-Del в режиме ЛАТ, то при перезагрузке не будут гореть светодиоды ни РУС, ни ЛАТ.

Вообще говоря, (раз уж начал хвастаться), я переписал BIOS ЕС1841 для поддержки альтернативной (866) кодировки. Пришлось изменить код в паре других мест, чтобы влез новый обработчик Caps Lock. Вот тогда эту ошибку и обнаружил. Но для данной темы это оффтопик.

andrews
13.09.2020, 13:20
На основе вышеперечисленных Вами проектов как раз можно собрать интересную ПЭКВМ. Если не использовать графический экран, то наиболее доступное и ощущаемое программирование это звук! Цифровой дисплей это вычислительные алгоритмы. Программу вводить конечно лучше клавишами. Для "ленивых и избалованных прогрессом" желательно предусмотреть связь с компьютером верхнего уровня. Наличие эмулятора расширит потенциальное число пользователей и уменьшит интерес со стороны производителей конструкторов для сборки. Тема вечная как необходимая ступень в карьере разработчиков, да и вообще имеет право на существование в любую эпоху.

dvarkin
22.09.2020, 12:27
Очень интересно, но совсем никаких подробностей по некоторым проектам! Схемы, программы — ...?

RCgoff
25.09.2020, 10:59
Очень интересно, но совсем никаких подробностей по некоторым проектам! Схемы, программы — ...?
https://github.com/rcgoff/pokroller - исходный текст монитора компьютера, который программировался тумблерами.
Распределение портов там приведено.
Схема делалась на бумаге и постепенно пришла в ветхое состояние.
Но, коротко: основная нестандартность заключена в переключателе режима "работа/ввод".
В режиме "ввод" РФ10 (87c55) была подключена как ПЗУ на младшие адреса, а РУ55 как ОЗУ данных.
В режиме "работа" (подразумевается работа по записанной программе) РФ10 отключалась, а РУ55 подключалась как память команд на младшие адреса.
Переключение чтения память/порт (вывод IO/M) РУ55 реализовано на внешнем триггере, управляемом по интерфейсу порта-расширителя и программно недоступном по чтению. (Во время разработки я не знал, что РУ55 защелкивает IO/M по стробу так же, как и шину адреса, и внешний триггер можно было не ставить.)
Каждое переключение "работа-ввод" кроме того генерировало импульс сброса для микроконтроллера.

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

- - - Добавлено - - -

Кстати, в этой книге из известной серии "Микро-ЭВМ" http://publ.lib.ru/ARCHIVES/M/''MikroEVM''/MikroEVM_v_8_knigah._Kn.7.(1988).%5bdjv-fax%5d.zip
приведены схемы и исходный текст монитора учебного стенда на ВЕ48

dvarkin
26.09.2020, 10:22
https://github.com/rcgoff/pokroller - исходный текст монитора компьютера, который программировался тумблерами.
Буду использовать! ;)


Кстати, в этой книге из известной серии "Микро-ЭВМ" http://publ.lib.ru/ARCHIVES/M/''Mikr...djv-fax%5d.zip
приведены схемы и исходный текст монитора учебного стенда на ВЕ48
И это тоже :v2_thumb:

Доделываю своё поделие.
73555
Решил, что 8 кнопок будет мало, использовал ИР16 для опроса матрицы 4x4, итого стало 20 кнопок. Даже не поленился заснять диаграмму: https://i.ibb.co/1MHsK3q/screenshot2.png (https://ibb.co/hcpXHkW)
По чтению Порта 4 (отдельных 4 клавиш) регистр загружает в себя 1110, а после каждого чтения Порта 5 регистр автоматически выбирает следующую строчку.
Теперь есть нормальный ввод HEX и работа на чтение/запись всех внутренних регистров 1602, и это всё через интерфейс РВВ!

У РУ8А, возможно, не равноправные стробы выбора МС. Сейчас я могу спокойно записывать в неё 4 байта в разные места последней страницы (четыре старших разряда незадолго до записи и чтения РУ8А я каждый раз сбрасывал в состояние 1111) и потом читать их же (4 байта записал и только потом 4 прочитал) - защёлкивание, вроде, не должно запомнить верный адрес для защёлки с равноправными стробами. Также выше, кажется, писали, что при заземлении одного строба выбора РУ8А не работала. Это всё хорошо согласуется с датащитом аналога HM6516, у которого защёлка только на одном стробе. Буду надеяться на это, иначе моё поделие, возможно, не сможет работать при выполнении кодов из РУ8А.