PDA

Просмотр полной версии : 8-битный дисплейный модуль



rw6hrm
18.08.2016, 12:35
Немножко адаптировал конструкцию Гранта Сирла для параллельной шины и встроил в свою конструкцию (http://qsl.net/rw6hrm/html/z80.htm). Вещь получилось достаточно простая, может быть подключена к любой восьмибитной конструкции (к тому же ЮТ-88), а также к LPT любого компа. Кратко-сумбурное описание тут, http://qsl.net/rw6hrm/html/8bitdisp.htm Пока ещё не поддерживается кириллица, но ковыряю исходники для переделки под альтернативную кодировку (СР866 емнип) насколько позволяет время. Прошу не рассматривать как окончательный вариант, а только как направление движения ;)

Ewgeny7
18.08.2016, 13:15
rw6hrm, Бейсик и двустрочник - наше всё! :)

http://savepic.ru/10986246.jpg

rw6hrm
18.08.2016, 13:19
двустрочник
Хорошо, но мало! ;)

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

Ewgeny7
18.08.2016, 13:28
Удивительное, вообще говоря, ходит рядом. Я как раз второй день прикидываю, как мне видеоадаптер из Меги8 прикрутить к плате с 8088. Вариант на TQFP-ПЛИС мне не понравился, эстетика не устраивает. Мега в ДИПе - самое оно.
И тут ты как раз тоже эту тему поднял :)

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


тут злая мысль была, чтобы именно эту конструкцию к ЮТу подключить
Хорошая мысль. Только уж не к КР580ВМ80, а лучше к КР1821ВМ85А. Оно так сохранит всё антикварное, зато проще с генератором, питанием, и буферами на шинах. Достаточно одной 580ИР82 (1533ИР22).

rw6hrm
18.08.2016, 13:38
Кстатеговоря, можно будет обратиться за помощью скомпилировать переработанные исходники для Меги? А то АВРстудио в наличии нет, только в тетрадке перелопачиваю...

Кмк, ютовцы не будут использовать эту схему:), ибо неканонiчно

Ewgeny7
18.08.2016, 13:55
Я вот не уверен, что не будут. Там схема уже изрядно переделывалась, а тут вырисовывается комп на пяти микросхемах всего....
Да можно, конечно.
А что не поставишь, раз перелопачиваешь? ;)

rw6hrm
18.08.2016, 14:03
Перелопачиваются файлы, ответственные за "картинки" символов. Тут всё просто - посмотрел на картинку, нарисовал в клеточках, перевёл в хекс (просто..., проблема со свободным временем). Т.е. основная программа не трогается никоим образом. Ставить прогу и разбираться ради одной компиляции... можно, конечно, но лень же велика и необъятна ;)

shoorick
18.08.2016, 18:24
Кстатеговоря, можно будет обратиться за помощью скомпилировать переработанные исходники для Меги? А то АВРстудио в наличии нет, только в тетрадке перелопачиваю...
AVR-студия целиком не нужна, достаточно avrasm2 и инклуд(ы) под конкретную модельку.
----------
На худой конец можно fasm g применить: у него и такое есть, для больших проектов не порекомендую, но лучше, чем в тетрадке - это однозначно ;)

Andrey_Korabelev
25.08.2016, 15:01
Где можно подробнее узнать про
В помощь ему подключён сдвиговый регистр отображаемого символа D21 (чтобы убрать известный в подобных конструкциях джиттер первой строки формируемого изображения).

Error404
25.08.2016, 15:21
Прелестно! Я это соберу для Юзикса Ориона-ПРО. :) Но есть доп. хотелки, для которых уже нужна Мега32. Оно в исходниках?

rw6hrm
25.08.2016, 19:29
Оно в исходниках?
Исходники лежат на странице Гранта Сирла, ссылка в статье была. Оригинал можно использовать без переделки кодовой таблицы.



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

UPD: что-то было тут, http://www.batsocks.co.uk/readme/art_SerialVideo_3.htm

Ewgeny7
25.08.2016, 20:21
Я не наблюдаю никаких недостатков в изображении. Всё ровно и красиво... Это всё же от реализации зависит, "я так думаю!"(С)Мимино.

Andrey_Korabelev
26.08.2016, 15:40
...про джиттер было тут, http://www.batsocks.co.uk/readme/art_SerialVideo_3.htm
Ага, значит дело в невозможности(или сложности) обеспечить одинаковое количество тактов AVR на каждую скан-линию, если использовать прерывания. Правда не очень понятно каким образом внешний регистр выруливает ситуацию, ведь его установку надо тоже синхронно производить...

rw6hrm
26.08.2016, 20:27
В регистр главное запихнуть байт, после чего он сам будет далее выдаваться, чем разгрузит контроллер, хоть немного. Лучше использовать в качестве внешнего регистра именно ИЕ10, поскольку он синхронный, но , по бедности пойдет и ИЕ9, но тогда можно ожидать разноширинность получаемых точек.



не наблюдаю никаких недостатков в изображении
Это хорошо, вот только повнимательнее надо быть ;), ибо при заполнении всего экрана верхняя строчка слегка подёргивается, это хорошо видно на ЖКИ-ТВ. И чем меньше скорость общения с контроллером, тем подёргивания заметнее. Если смотреть через ТВ-тюнер, то эта железка исправляет полученный сигнал, убирая джиттер. Но в общем согласен - это не влияет на общее состояние дел, конструкция реально кульная ;)

Andrey_Korabelev
27.08.2016, 01:36
...Нахмурило. Не в обиду, но вижу несколько противоречий. Но... Пусть лучше рассудят гуру...

Error404
29.08.2016, 00:42
Задумался на тему что встроенных 2к ОЗУ (на одну экранную плоскость) мне мало.
Интересно, сложно ли перепилить проект под, к примеру, Мегу128 или Мегу32 с внешней памятью (http://www.scienceprog.com/adding-external-memory-to-atmega128/)?
В Меге328 под это (внешнюю память) как я понимаю возможности нет.

CodeMaster
29.08.2016, 21:28
Бейсик и двустрочник - наше всё!

Сначала подумал, что это (http://www.sintech.cn/post%20card/ST-MT35%20DDR2%20DDR3%20memory%20card%20tester.html) миникомп, но это оказался двухдисплейный терминал в PCI. Да, не 8-ми битный, а 32-х, но на вырост может интересно будет ;-)

rw6hrm
06.04.2018, 15:42
Прошло два года :v2_dizzy_vodka:, файло доделал. Поскольку Грант Сирл на своей страничке выложил не все нужные для компиляции файлы (понадеялся на новые версии программы у юзверей, а у него стоит AVR Studio 7), то пришлось обратиться к народу и с помощью уважаемого пользователя ВКонтакта Nable80 проблема была решена, за что я публично приношу свою благодарность. Архив прошивки в прицепе.
Итак, что очень неспешно сделано - переделана вторая часть кодовой таблицы на альтернативную кодировку, большей своей частью совместимой с СР866. Можете пользоваться.
Замечание для тех, у кого чешутся ручки, кому не понравится мой шрифт, либо хочется КОИ-ХХ - скачиваете архив со странички Гранта, затем переделываете файлы под названием CGAxxxx.inc под требуемую кодировку или шрифт. Можно использовать два типа шрифтов - альтернативный и КОИ, для этого можно пожертвовать болдом, записав вместо него вторую таблицу. Мало того, можно при старте задать тип таблицы по умолчанию, либо изменив .org'и в начале таблиц, либо поправив несколько строчек в .asm'овском файле (что и как править - читайте на страничке Гранта). Архив переделанных таблиц для опытов также прилагаю (а может я где и скосячил, но не углядел :v2_dizzy_botan: и требуется правка).
Отсутствующий в архиве Гранта заголовочный файл можно скачать тут. (https://raw.githubusercontent.com/DarkSector/AVR/master/asm/include/m328def.inc)

rw6hrm
14.04.2018, 20:04
Дошли руки, завёл с новым знакогенератором. Всё нормально, всё работает. Из одного резистора собрал "эмулятор компа", подсоединил давно собранную ASCII-клаву, потыкал символы (защиты от звона пока нет, посему и куча повторов на экране). Можно присоединять к компику, тем более что с этой платы на него пойдут и тактирующие импульсы в 4 МГц.
Разумеется, что если кому мой вариант клавы не нужен, то одну микросхему можно не ставить. А можете обойтись PS/2-ASCII - адаптером, ссылки ранее давались (но у меня 8-битный выход с клавы).
Если у компа свой такт, то минус ещё одна микросхема. Итого получится всего 7 микросхем.
Фоточки:
https://pp.userapi.com/c844724/v844724228/2a3e3/tXFskqYMQOI.jpg
https://pp.userapi.com/c844724/v844724228/2a3ed/gSsYMwF--U8.jpg
Страничку на сайте подновил.

rw6hrm
16.05.2018, 21:56
Семь из восьми текстовых режимов (40 символов, нормальный, двойной высоты, лениво было делать;), но он симпатичный), если кому-то ещё эта конструкция интересна:
- 40 символов в строке, жирный (25 строк в экране)
- 40 символов в строке, жирный, двойной высоты (12 строк в экране)
- 40 символов в строке, нормальный
- 80 символов в строке, жирный
- 80 символов в строке, жирный, двойной высоты
- 80 символов в строке, нормальный, двойной высоты
- 80 символов в строке, нормальный
Разумеется, что во время работы мы можем свободно построчно переключать режимы отображения.

Shumadan
21.05.2018, 20:30
Эту штуковину как подцепить к Аюше 6502? Управляющий сигнал с GS1 там отсутствует. Или в видеотерминале подцепить его на минус?

rw6hrm
21.05.2018, 20:41
В Аюше свободных чипселектов на D17 начиная с /CS1 и до /CS12, судя по таблице, http://www.qsl.net/rw6hrm/html/6502_sch.htm . Остаётся только выбрать, я бы выбрал /CS12. В этом случае получится адрес BF00H - данные в дисплей (и из клавиатуры), BF01H - проверка регистра занятости дисплея (нажатия клавиши).
Разумеется, что в этом случае придётся делать две правки:
- подпрограммы ввода/вывода символа в дисплейный модуль;
- добавить подпрограмму ввода/вывода в последовательный порт, в том числе и подправить Бейсик (ввести LOAD/SAVE, скажем). Либо, если последовательный порт использоваться не будет, как-то сделать дисковую/карточную память с использованием того же ВВ55.

Но я бы попробовал цеплять эту штуковину не к Аюше, а к ЮТу, но последнего у меня нет ;)

Shumadan
23.05.2018, 14:38
У меня тоже нет ЮТ. Но с ним тоже нужно будет писать подпрограмму.

rw6hrm
28.05.2018, 19:47
Откорректировал схему ввода с клавиатуры (хоть это никому и не нужно). Оно было рабочее "в принципе", теперь работает реально, без сбоев и излишних чтений буфера.

rw6hrm
09.06.2018, 22:35
По поводу графики. Если кто-то думает, что 160х100 - это мало, то для данного адаптера - это полный экран. Да, "пиксели" получаются жирненькие и сочные. Да, курсор надо перед выводом графики отключать (чего я не сделал, записывая видео).
Ссылка на видео - https://vk.com/doc117527293_468090753
В 40 строке программы как раз и сделан попиксельный вывод полной закраски, а потом и стирания экрана. Середина убыстрена в пять раз, чтобы не было печально смотреть на работу Бейсика ;)
Ничто не мешает, скажем, иметь графику в верхней части экрана, а в нижней - текст. Чуть попозже попробую наваять аналогичную прогу на асме и запустить из-под СР/М. А можно и нарисовать что-нить, но я не кульный маляр ;)

Shumadan
09.06.2018, 23:54
Видео недоступно

rw6hrm
10.06.2018, 09:41
Да ладно... Проверил с телефона, планшета и ИЕ8 без реги в ВК - файл скачивается. Ну разве что не скачается у соседей из UA, увы...
Оказывается можно и спрайтиками ворочать, нужно время, чтобы понять и опробовать.

siemensC35
10.06.2018, 10:39
f

Ну разве что не скачается у соседей из UA, увы...
без коментариев
https://s19.postimg.cc/klvohigb3/image.jpg (https://postimg.cc/image/klvohigb3/)
а штука интересная, попала в руки трубка 3ло1и на которой я когда-то видел терминал и вспомнил я тут ЭВМ одного гражданина
здесь трубка не задействована была хотя в то время терминал был бы сопоставми по размерам с этим гробиком
https://s19.postimg.cc/62ojg601r/P5080021a.png (https://postimg.cc/image/62ojg601r/)
можно былобы собирать компьютер аля ЮТ-88 в дипломате

rw6hrm
10.06.2018, 11:14
У меня лежит для таких целей микротелевизор типа Юность с кинескопом в 7 см диагональю (на фотке ЮТа из приложения к ЮТу xD как раз такой), но глазята уже не те...
Тут соседи собрались, посмотрели и требуют комп в аренду попробовать написать демку ;)

Shumadan
10.06.2018, 11:33
Да ладно... Проверил с телефона, планшета и ИЕ8 без реги в ВК - файл скачивается. Ну разве что не скачается у соседей из UA, увы...
Оказывается можно и спрайтиками ворочать, нужно время, чтобы понять и опробовать.
С айпада не скачивает. Просмотрел на компе. Получается попиксельно закрашивается каждое знакоместо?

siemensC35
10.06.2018, 11:36
микротелевизор типа Юность с кинескопом в 7 см
11ЛК трубка ? были такие агрегаты типа Электроника-450 и Мара но живьем не видел
Кстати прототип РКшки имел вроде как видеотоновский терминал, интересно было бы это все состыковать для тестов

rw6hrm
10.06.2018, 11:58
Получается попиксельно закрашивается каждое знакоместо?
Да, это первое, что пришло мне в голову для проверки. Со "спрайтами" там интересней, но нужно время, чтобы понять и осмыслить. Надо будет перевести на русский документацию для удобства.

siemensC35, именно 450-я моделька лежит. Требует замены электролитов, но ещё живая.

siemensC35
10.06.2018, 12:46
rw6hrm, как по мне так ВЛ-100 еще хороший вариант напоминающий 15иэ , корпус металический, хорошо вписываеться в идеологию
Еще ранние шилялисы 40х тоже были в метале но их днем с огнем

rw6hrm
16.06.2018, 12:38
Поскольку дело движется к практическому применению, возникают два взаимосвязанных вопроса. Итак, есть видеоадаптер с разрешением 160х100 в графике, имеющий только команды закрашивания/стирания точек по заданным координатам.
Вопрос первый: по каким формулам рассчитать поточечное рисование линии, окружности и прямоугольника?
Вопрос второй: то же самое, применительно к ассемблеру Z80? ;)
Хочется в имеющуюся версию BBCBASIC'а добавить процедуры рисования применительно к имеющемуся железу. Просто из версии для Z80 графические команды исключены разработчиком, да и не подошли бы они...
Другого Басика просьба не предлагать, ибо именно эта версия настолько заморочена по своим возможностям, что все остальные тупо курят в сторонке.

LeoN65816
16.06.2018, 13:59
Вопрос первый: по каким формулам рассчитать поточечное рисование линии, окружности и прямоугольника?
Алгоритм Брезенхема (https://www.yandex.ru/search/?text=%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D 0%BC+%D0%91%D1%80%D0%B5%D0%B7%D0%B5%D0%BD%D1%85%D0 %B5%D0%BC%D0%B0&clid=9403&lr=11091).

HardWareMan
16.06.2018, 14:00
siemensC35, у ВЛ100 (http://www.rw6ase.narod.ru/00/twcb/elektronika_wl100.html) 16см, у Э-450 (http://www.rw6ase.narod.ru/00/twcb/elektronika450.html) - 11. А у вот у Мары-2 (http://www.rw6ase.narod.ru/00/twcb/mara2.html) всего 8. У меня есть такой, и когда я принес его 20 лет назад в мастерскую где работал, чтобы показать пацанам, они со смехом предлагали померить анодное напряжение обычной Ц-шкой... :)

rw6hrm
16.06.2018, 16:52
Алгоритм Брезенхема.
Угу, спасибо, как раз на Коде Розетты нашлось в полном объёме. Спасибо.

Кстати говоря, забыл уведомить: модуль можно подключить не только по 8-битной шине, но по четырёх и двухпроводной шинам (последняя I2C зовётся). Но не думаю, что это кому-нибудь понадобится IRL.

rw6hrm
17.06.2018, 22:40
Упс, блин... я-то думаю, почему у меня ESC-последовательности не обрабатываются..., оказывается в обработчике на них стоит заглушка и пока мы не ANSI-совместимы (хотя и декларируемы). Написал автору прошивки, жду ответа...

siemensC35
17.06.2018, 23:35
siemensC35, у ВЛ100 16см, у Э-450 - 11. А у вот у Мары-2 всего 8. У меня есть такой, и когда я принес его 20 лет назад в мастерскую где работал, чтобы показать пацанам, они со смехом предлагали померить анодное напряжение обычной Ц-шкой...
вот самый удобный вариант портативизации слизаный из шарпея каково-то
http://www.rw6ase.narod.ru/00/komb/elektronika8tmb02d.html
я такую руками щупал, но дорого она тогда была

HardWareMan
18.06.2018, 07:59
siemensC35, я такой только на картинках видел. Ну и цитату исправь, а то не понятно .

siemensC35
18.06.2018, 18:39
Ну и цитату исправь, а то не понятно
поправил, кстати есть трубка от Осцилографа где-то таких размеров но задница аля 61ЛК5ц . ожет поробовать терминалировать ее к потрохам ВЛ100/Ц407 или затея марная для терминала ?

HardWareMan
19.06.2018, 07:33
У осциллотрубок отклонение электростатическое. А нужно электродинамическое. Пластины внутри будут мешать. С другой стороны, если доработать модуль развертки, то все получится. ;)

rw6hrm
19.06.2018, 23:07
...мож лучше подскажете по теме алгоритм обработчика ANSI-последовательностей?

TomaTLAB
20.06.2018, 00:12
Пластины внутри будут мешать. И с фокусировкой у них не ахти. Без хорошего магнитного экрана луч в кляксу размывает.

siemensC35
29.06.2018, 15:26
А не подскажете если повторять на базе ардуины то поидеи генератор на рассыпушке не делаеться ( в ардуине он там на платке есть свой) и как это дело отвяываеться от клавиатуры непойму ( д3.4 4.3 4.4 2.2 4.1 5.1 убрать ? ) и можно например ИР13 привязать выходя из наличия онных в кармане ?

rw6hrm
29.06.2018, 16:43
Если на базе ардуины (если не ошибаюсь - Nano), то программируется внутренний генератор и убираются все бутлоадеры. В этом случае желательно, чтобы ИР10 была из серии 74HCT, иначе напряжения на её раскачку не хватает. Или ставить между атмегой и ИР10 буферный каскад до ТТЛ-уровня. Просто тут косяк был в том, что на 16 МГц генерация встроенного генератора Атмеги была не очень устойчивая и слабая по уровню, рука пролетела - и сорвалось. Или не запустилось при подаче питания. Вообще в первоначальном оригинале Риктора стоял внешний одночиповый генератор, так что проблема, скорее всего, известна, ибо атмега разработана как малопотребляющий чип, не обязанный дополнительно тянуть внешние схемы.
Отвязаться от ненужного - просто не собирать части схемы, обведённые голубым и жёлтым квадратами. Останутся свободные элементы в чипах. Либо на оставшихся элементах ЛА8 и ЛЛ4 сделать аналог одного триггера ТМ2 для экономии (по сути нужен обычный делитель на 2, тактируемый по сбросу).
Входной регистр может быть любой, позволяющий записать и защёлкнуть данные на выходе по высокому уровню.
ИР10 можно заменить на ИР9 (с переделкой ножек), но возможна разноширинность получаемых точек (поскольку ИР9 асинхронная), что повлияет на "красоту" изображения.

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


( д3.4 4.3 4.4 2.2 4.1 5.1 убрать ? )
Вот как раз на всех них собрано определение занятости видеовыхода. Если чип занят обработкой/выводом изображения, то на выходе Д3.4 при его опросе будет низкий уровень. Т.е., прежде чем кинуть байт в регистр Д7, сначала надо опросить занятость, иначе байт пропадёт.
У меня на Z80 это реализовано примерно так:

conoutB1: IN A,(SIOB_C) ; Читаем статус байт из Д3.4 - D1=1 передача закончена
AND 00000010B ; маска проверки бита 1
JR Z,conoutB1 ; лупим, пока результат маски 0
POP AF ; Вытаскиваем нужный байт из стека
OUT (SIOB_D),A ; Выдаем его в видеоадаптер в Д7
RET