PDA

Просмотр полной версии : Альтернативный Микро 80



_Andrey
08.04.2010, 18:57
Альтернативный Микро 80
Микро80 отечественный клон Altair 8800 1975г. Сложный многоплатный конструктив ПЭВМ больше
подходил для промышленности и узкого круга радиолюбителей. Что было бы, если авторы Микро80 перегруппировали блоки для выделения одного законченного модуля. Например, как в ЮТ-88 модуль ПМК. Это упростило бы сборку, расширило аудиторию за счет понятного применения.
Вызывает сомнения возможность публикации бытового одноплатного БК в 1983г
(Специалист, РК-86 и подобные) из-за новизны темы в этот период. Одноплатные бытовые ЭВМ
получили развитие после приказа на создание массового БК.

Каким мог быть подобный вариант Микро 80?
Последствия и дальнейшее развитие?

Вводные условия
1) Журнал Радио 1983 год (все тоже вплоть до №2 со статьей о Микро80)
2) Элементная база Микро 80 с теми же характеристиками
3) ПО к калькулятору в последующих статьях

Один из возможных вариантов.

ТТХ ПМК
-Процессор КР580ИК80 2 МГц 500 тыс. оп/сек
-ОЗУ 1КБ
-ПЗУ 2КБ
-Клавиатура 16 клавиш
-Вывод на индикаторы 8 сегментов
-Системный разъем
-Магнитофонный интерфейс
-Пошаговый режим
-Всего микросхем 34 по сравнению с минимум 44ИС +4ИС для индикатора на ВВ55
Модуль Микро80 Альтернатива
Процессорный 16 17 (К155ТМ2 для пошагового режима)
Сопряжения 4 1
Клавиатуры 4 2
ОЗУ 17-41 8
ПЗУ 3 2
Индикатор - 4
ИТОГО 44-68 34
Отладки 39 -
Видеоконтролле 45 -
ИТОГО 152

Упрощение за счет: дешифраторов устройств и буферов на 30%


Если добавить сдвиговый регистр и программно генерировать синхронизацию, возможен вывод

изображения на телевизор способом ZX80, когда экран отключается при вводе выводе и вычислениях.
При выводе переключается в специальный режим, когда ПРЦ+ПЗУ генерируют видеоадрес каждые 8

тактов
ТХ
ИС 4-8
Разрешение
Вертикальное до 256
Горизонтальное 96 (2Мгц/50кадров/312строк +развертка)

Далее модули:
Отладки
Программатора
Полноразмерной клавиатуры
Динамического ОЗУ

Последствия.
1) Более широкое распространение (понятнее как применять, проще)
2) В дальнейшем перевод на более современную элементную базу с сохранением функций ПМК до 10
ИС ВМ80А ГФ24 РУ10 РФ5 ВВ55 ИР82 2 шт. ИД7 К140УН
3) Более вероятен конструктив материнская плата с картами расширения.

Atari
08.04.2010, 19:24
_Andrey, такишо вы хотели сказать?

sergey2b
08.04.2010, 20:14
помому минимальный радиолюбительский ПК получился если бы сделали аналог югославской галаксии но на ИК80 (z80 тогда у нас точно небыло)

Andrnow
08.04.2010, 22:00
Статья - дерьмо. Ибо не о чем.
Микро-80 действительно был очень сложным.
РК-86 содержал кучу непонятных специализированных БИС, достать которые было очень тяжело, и они делали схему компа не прозрачной...
Но вот что автор статьи имеет против Специалиста? ИМХО комп гениальный. На меньшем количестве деталей комп собрать нельзя. При этом по возможностям он не чем не уступал другим на 8080...
Программное генерирование видеосигнала - это полный идиотизм...

---------- Post added at 22:00 ---------- Previous post was at 21:38 ----------

Еще меня всегда интересовал такой вопрос. Зачем во многих советских компах ПЗУ было не в начале адресной области, а где-то в ж*пе? Зачем изобретать какие-то схемы начального пуска, добавлять в схему как минимум 2 лишних корпуса, если можно просто расположить ПЗУ с 0 адреса и не парится?

Atari
08.04.2010, 22:09
Но вот что автор статьи имеет против Специалиста? ИМХО комп гениальный. На меньшем количестве деталей комп собрать нельзя. При этом по возможностям он не чем не уступал другим на 8080...

"Спец" вышел на год позже РК-86, а если сравнивать тираж "Радио" и "МК" то все становится на свои места.
Компик отличный, но 12к видео-ОЗУ это достаточно большой тягар для такого задохлого процика.



Еще меня всегда интересовал такой вопрос. Зачем во многих советских компах ПЗУ было не в начале адресной области, а где-то в ж*пе? Зачем изобретать какие-то схемы начального пуска, добавлять в схему как минимум 2 лишних корпуса, если можно просто расположить ПЗУ с 0 адреса и не парится?

ИМХО буржуйские домашние компы - это игровая консоль с случайно прилеленой клавой, а наши - терминалы с альтернативными ПЗУ. Может подсознательная ориентированность на серьезные компы с СР/М сыграла свою роль?
PS. ПиСюк тоже так устроен.

Andrnow
08.04.2010, 22:17
Atari,

Компик отличный, но 12к видео-ОЗУ это достаточно большой тягар для такого задохлого процика.
Да, но программное формирование видеосигнала, о котором говорит автор статьи...

Atari
08.04.2010, 22:47
Да, но программное формирование видеосигнала, о котором говорит автор статьи...

А шо нам дедушка? написал чепухи и смылся...

---------------

Эту тему, но сдругой стороны я уже поднимал http://zx.pk.ru/showthread.php?t=12367 получается он самый Микро-80 с вариантами дисплея.
Но навалившееся ZX железо...

AlecV
08.04.2010, 22:49
Может лучше сделать клон Альтаира с настоящей шиной S100 ?

Тем более что модулей S100 на ебэе бывает.

_Andrey
09.04.2010, 05:55
1) Хотел узнать что было бы если авторы Микро 80 не просто скопировали Альтаир 8800, а перекомпоновали и упростили.
2) Против специалиста ничего не имею, но считаю что в 1983 году даже если он был нигде бы не опубликовали из за новизны темы. Когда начался вал БК. После постановления съезда о компьютеризации. Тот же Специалист сделан в 1985 а опубликован в 1987.
3) Программно аппаратная реализация видеоконтроллера 1 из примеров упрощения конструкции. Оригинальный Микро 80 -45 микросхем.
4) Можно было сделать более мощный в плане графики и звука комп.
1) 2 отдельных памяти для ЦП и видеоконтроллера
меньше нагрузка и выше тактовые частоты в перспективе
2) Видеоконтроллер на процессоре КР580ВМ80 с ПЗУ
для генерации видеоадреса и сигналов. Дает вертикальный скролл, можно менять адресацию экрана если добавить статическую память . ZX Spectrum, Специалист, Вектор-06Ц, MSX1, Amstrad CPC в 1 компьютере

---------- Post added at 08:55 ---------- Previous post was at 08:22 ----------



Программное генерирование видеосигнала - это полный идиотизм...

Не программное, а программно аппаратное как в ZX80/81 той же Галаксии. Сильно упрощало.

Atari
09.04.2010, 10:16
_Andrey, вы кроме апрельских тезисов за совецкую власть толком сказать можете чего вы хотите? Какова цель вашего спитча?

_Andrey
09.04.2010, 21:36
Какие были варианты переделать Микро80 для снижения порога минимального ЭВМ.

Пример ЮТ-88 начали с ПМК и далее нарастили до БК.
Микро80 куча плат для этого. По отдельности модули были малополезны

Andrnow
09.04.2010, 21:42
Какие были варианты переделать Микро80 для снижения порога минимального ЭВМ.
Никаких... ибо не нужно было это никому...

tnt23
09.04.2010, 22:00
Еще меня всегда интересовал такой вопрос. Зачем во многих советских компах ПЗУ было не в начале адресной области, а где-то в ж*пе? Зачем изобретать какие-то схемы начального пуска, добавлять в схему как минимум 2 лишних корпуса, если можно просто расположить ПЗУ с 0 адреса и не парится?

Затем, чтобы можно было с минимальным геморроем перенести CP/M (или ее клоны, вроде MикроДОС), что сразу давало ворох софта.

Atari
09.04.2010, 23:24
_Andrey

Если вам нужена микромодульность то берете 8080, 8085 или z80 на выбор.
Каждый из них имеет свои достоинства и недостатки.

На процессорной плате лепите тактовик с основой в 16 Мгц делителем на 8 и "пошагиволкой" (ни вкоем случае не используете ГФ24 - получите кучу головняка)
Там же статикой W24512 - 64к ОЗУ и РФ2 ПЗУ. Можно буферезировать шины.
Все - процессор готов.

Дельше можно сделать видик на рассыпухе и РУ10 (или 27256) как в Микро-80 или как в Радио на ВГ75.

Отдельно городится порт клавы, таймер, прерыватель, последовательный порт.


Если вам приспичило "немного графики" - берете "Орион" и закрываете тему.

_Andrey
10.04.2010, 17:26
Никаких... ибо не нужно было это никому...
Тогда тему можно закрыть.

---------- Post added at 20:26 ---------- Previous post was at 20:23 ----------


_Andrey

Если вам нужена микромодульность то берете 8080, 8085 или z80 на выбор.
Каждый из них имеет свои достоинства и недостатки.

На процессорной плате лепите тактовик с основой в 16 Мгц делителем на 8 и "пошагиволкой" (ни вкоем случае не используете ГФ24 - получите кучу головняка)
Там же статикой W24512 - 64к ОЗУ и РФ2 ПЗУ. Можно буферезировать шины.
Все - процессор готов.

Дельше можно сделать видик на рассыпухе и РУ10 (или 27256) как в Микро-80 или как в Радио на ВГ75.

Отдельно городится порт клавы, таймер, прерыватель, последовательный порт.


Если вам приспичило "немного графики" - берете "Орион" и закрываете тему.

Уже есть несколько модулей на Z80, 8080, модуль видеоконтроллера ZX Spectrum, ручной программатор/отладчик. Собственно тема возникла из этого.

Gryphon
13.04.2010, 13:46
Извините за оффтоп, но все-таки, у кого-нибудь есть фотографии Микро-80? Очень хотелось бы взглянуть на него.

L Juriy
13.04.2010, 14:40
Мой вариант микрокомпьютера МИКРО-80 можно посмотреть здесь (http://foto.mail.ru/mail/eslif/)

Gryphon
13.04.2010, 14:56
Выглядит даже совсем неплохо. Спасибо!

---------- Post added at 21:56 ---------- Previous post was at 21:49 ----------


Микро-85
А что это такое?

CodeMaster
13.04.2010, 16:08
Затем, чтобы можно было с минимальным геморроем перенести CP/M (или ее клоны, вроде MикроДОС), что сразу давало ворох софта.

Ладно, перефразируем вопрос, а зачем в тех буржуйских компах под которые писАли CP/M ПЗУ было в конце. В БК-0010 вообще хрен пойми и в начале и в конце были служебные области, хотя софт никакой на неё не переносили.

SpecialistMK87
13.04.2010, 16:52
Мой вариант микрокомпьютера МИКРО-80 можно посмотреть здесь
Микро-80 супер. Мне брат рассказывал - подрабатывал на предприятии при радиоинституте и сделали целый учебный класс с Микро-80. Довелось один раз побывать в той аудитории где они стояли... При включении помню было сообщение чтот вроде "Триак".
еще очень понравился терминал (к ДВК подключен?), помню такой был у нас институте на СМ-1420. Клавиатура необыкновенно красивая и удобная была.

KALDYH
13.04.2010, 20:23
Мой вариант микрокомпьютера МИКРО-80 можно посмотреть здесь
И вы сами это собрали? Снимаю шляпу...

Andrnow
13.04.2010, 21:28
KALDYH,

И вы сами это собрали? Снимаю шляпу...
А в чем проблема?
За день конечно это всё не спаяешь, но за определенное время вполне посильно.
Зато представляю сколько у него радости было, когда всё заработало :v2_rolley :v2_tong:

L Juriy
14.04.2010, 07:54
Да сам. Естесно не за день а не спеша с чувством с толком и расстановкой.
Собирался последовательно как и описано.
Был модуль со считывателем через который и переписывал.
Перфоленту готовил на другом компьютере.
На снимках нет процессорного модуля. После того как твторой раз сгорел процессор я еготразобрал., а снимков не осталось.
Собрал процессорный модуль из МПСС запустил и дальше он стоиял в этом комплекте. Шина совместима с ИРИШИной поэтому процессорный модуль Ириши тоже должен работает в в этой корзине. Но его я не запустил. Может сейчас доберусь и запущу.

Gryphon
14.04.2010, 09:08
L Juriy, так что же за такой Микро-85? Поясните непосвященному.

tnt23
14.04.2010, 10:53
Ладно, перефразируем вопрос, а зачем в тех буржуйских компах под которые писАли CP/M ПЗУ было в конце. В БК-0010 вообще хрен пойми и в начале и в конце были служебные области, хотя софт никакой на неё не переносили.

Вот не знаю, зачем ПЗУ ставили в конце адресного пространства. У восьмиразрядных 8080 и Z80 по сбросу обнуляется указатель команд PC, так, может, чтобы иметь возможность загружать и запускать свой код с адреса 0.

А БК тут вообще не при чем, она PDP-совместимая и шестнадцатиразрядная :) а CP/M делалась для 8-разрядных.

bigral
14.04.2010, 15:34
Вот не знаю, зачем ПЗУ ставили в конце адресного пространства. У восьмиразрядных 8080 и Z80 по сбросу обнуляется указатель команд PC, так, может, чтобы иметь возможность загружать и запускать свой код с адреса 0.

Это изза того что intel8080 процессор был на стоко тупо устроен. Он стартует с адреса 0 т.е. логично с этого адреса иметь ROM, но и векторы для "soft прерываний" RST 0,1,2,3,4,5,6,7 находятся там же рядом. А так как техника переписывания векторов довольно привлекательна то эта область должна быть в RАМ-е. Вот и выходили из этой ситуации по разному:
1. сделать стартовую схему которая после RESET-a вписывает по адресу 0 команды DI JP start_rom; или генерящую эти команды 1 раз после RESET-a на шине проца; или очищающую всю RAM NOP-ами (но вдруг прийдет сигнал прерывания до того как cpu достигнет ROM-области); (недостаток : во время старта может прийти NMI и обломится так как векторы еще неустановленны).
2. поставить ROM с 0 а на месте векторов разместить перевызовы по таблице векторов в RAM-e; (дополнительный перевызов - пустая трата времени);

L Juriy
14.04.2010, 18:42
Прошу прощения за дезинформацию, не знал что есть такой комп.
Так у меня названа собственная разработка, которая должна было управлять терапевтическим лазером.
Разработка была доведена до опытного образца и все.
Процессорный модуль с нее я и обозвал так, там проц стоит 8085, вот отсюда и название микро-85.
Выглядит примерно так.

Gryphon
15.04.2010, 00:40
Очень интересная штука!

_Andrey
15.04.2010, 05:36
L Juriy.
Быстро все статьи собрали?
Какие были проблемы кроме доставаемости деталей?

Вот еще рассказ и фотографии собравших Микро 80
http://www.phantom.sannata.ru/konkurs/micro80_001.shtml

vinxru
26.10.2011, 16:09
Я изучил Микро-80 и Альтаир 8800 вдоль и поперек. Общего там не больше, чем с другими компьютерами на 8080 процессоре.

Что такое Альтаир?

Это процессор Intel 8080, 1 Килобайт (или чуть больше) статической памяти и тумблеры на передней панели, с помощью которых можно читать и изменять память.

Что бы запустить Бейсик на Альтаире, к Альтаиру необходимо было докупить терминал, который подключается к последовательному порту. Ящик в котором микросхем поболее будет. Это кстати видно по исходникам Альтаир Бейсика и многочисленным видео на Ютубе.

(Позже, конечно к Альтаиру прикрутили все что можно прикрутить, даже процессоры 6502 и Z80. Там можно было встретить всевозможные решения со всех компьютеров. Поэтому нельзя принимать во внимание похожесть Микро-80 на один из вариантов доработанного Альтаира.)

Микро-80 изначально был рассчитан на работу с видеоадаптером и последовательного порта у него нет даже в теории. ПЗУ компьютера Микро-80 содержало подпрограммы для работы с видеоадаптером и клавиатурой, и все программы должны были их использовать. В базовой комплектации у Альтаира не было ПЗУ, только ОЗУ. А Микро-80 наоборот мог работать без ОЗУ (и без ПЗУ тоже).

Микро-80 и Альтаир похожи передними панелями. В обоих там тумблеры и светодиоды. Но эта панель тоже значительно отличается. На Микро-80 кнопок, светодиодов и функций значительно больше. Отладочный модуль Микро-80 - это самый сложный модуль компьютера. Например, при чтении порта 0 из программы, процессор останавливался, пока пользователь на тумблерах не наберет нужное значение и не нажмет "Готово". При записи в порт 0, данные отображались на светодиодах. Если процессор обращается к адресу установленному на шине данных, процессор останавливается.

В Микро-80 не была применена микросхема ГФ24, что бы было проще было подключить динамическую память. В Специалисте ГФ24 не использована по этой же причине.

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

vinxru
01.11.2011, 15:40
Экран телевизора может нормально отобразить чуть более 240 линий. И то, буржуи
в видеоадаптере CGA использовали только 200 линий. Используя коэффициент
пропорциональности популярный в то время 320/200=1.6 (почему?) мы рассчитываем
ширину экрана 240*1.6 = 384 пикселя (так же популярное разрешение). Далее, возьмем
самый маленький (но адекватный) размер символа в 6 пикселей и получим
разрешение в 64 символа.

И к тому же, 64 - это удобное число. Так проще рисовать схему и писать
программу. Для этого требуется распространенный кварц в 8 МГц.

Высота символа в Микре 10 пикселей. Это единственный факт, который
нельзя объяснить простотой. Проще было бы сделать 8 пикселей. Возможно
здесь стоит искать похожесть на другие компьютеры. В том числе на Альтаир.

Только я схемы видеоадаптера Альтаира нигде не видел. У кого нибудь есть схема?

Но скорее всего такое же разрешение имел компьютер или терминал
с которым имели дело авторы.

Заявленное разрешение видеоадаптера Микры 64x32. Только в реальности
видно 24-27 линий в зависимости от телика. Потому что 240/10 = 24.
На моей ЖК видно 26 линий, на стареньком телике 23.5 линии. Это же
разрешение 64x24 было потом у Радио-86РК.

Дальше поговорим об организации памяти. 7 битная видеопамять символов
и 1 битная видеопамять курсора занимают разные адресные пространства.
Их можно было бы объединить и это бы сэкономило несколько корпусов
микросхем. Зачем так сделано?

Затем, что чтение из видеопамяти не поддерживается. Что бы установить
курсор, нам бы потребовалось знать код символа в этом месте экрана.

Видеопамять занимает адресное пространство E000-EFFF. Это так же
единственно верный и самый простой вариант. В адресах F000-FFFF живет
ПЗУ и статическая память, а в начале адресного пространства живут вектора прерываний.

Искать сходство видеоадаптера Микро-80 и Альтаира надо в реализации
схемы, но только схемы я не нашел.

Atari
01.11.2011, 16:53
Экран телевизора может нормально отобразить чуть более 240 линий. И то, буржуи
в видеоадаптере CGA использовали только 200 линий.
не стоит забывать, что IBM - это американский гигант, а в амЭрыкэ как известно не PAL а NTSC.


Высота символа в Микре 10 пикселей. Это единственный факт, который нельзя обьяснить простотой.
читаемость гараздо выше, символы не сидят у друг друга на голове. да и разрешалово 64х32 (384х256 при 6х8) весьма и весьма...
мало того, именно (и только) нижние две линии и стоит занимать курсором.


Дальше поговорим об организации памяти. 7 битная видеопамять символов и 1 битная видеопамять курсора занимают разные адресные пространства.
Их можно было бы объединить и это бы съэкономило несколько корпусов
микросхем. Зачем так сделано?
тут вариантов миллион, но очень разумным былоб и там и там поставить по 8 бит и получить нормальную KOI-8 и полный байт атрибутов с 8 цветами и мерцанием.

---------- Post added at 14:53 ---------- Previous post was at 14:29 ----------


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

Если не ставить ГФ24 как в ЮТ-88, а по нормальномому разделить 16 МГц кварц на 8, то арбитраж в видеодаптер ввести очень не сложно.

vinxru
01.11.2011, 18:00
тут вариантов миллион, но очень разумным былоб и там и там поставить по 8 бит и получить нормальную KOI-8 и полный байт атрибутов с 8 цветами и мерцанием.

Это уже излишество. 128 символов хватит для коммуниста.

Для 8 битных символов пришлось бы ставить вторую ПЗУ. Раньше в наличии были только 1 Кб микросхемы и стоили очень дорого.

Я в своей схеме добавил перемычки, которые позволяют использовать ПЗУ с 256 символами размером 6x10. Теперь вот хочу подбить вас всех выбрать 128 спрайтов 6x10, которые будут использоваться для игр. При переносе игр с других РК совместимых компьютеров, можно будет использовать символы из расширенного знакогенератора.

Ну и плату цветного изображения я так же добавлю, но попозже.

Atari
01.11.2011, 18:09
выдумывать очередной собственный/несовместимый стандарт дело неблагодарное.

присмотритесь к знакогенератору от "Микроши", там есть и псевдографика и маленькие русские.

HardWareMan
01.11.2011, 18:16
Символы Lode Runner и Packman детектед!

vinxru
01.11.2011, 18:23
выдумывать очередной собственный/несовместимый стандарт дело неблагодарное.

Это не стандарт. Я ведь кроме ёмкой ПЗУ никаких других корпусов не добавил. И то, ПЗУ я добавил, только потому что у меня программатора для "ПЗУ с -5 и +12 Вольт" пока нет.

В Микро-80 больше половины знакогенератора пустые. Если мы их заполним, то ничего страшного не произойдет.

Atari
01.11.2011, 18:40
офф

vinxru, тут бы сразу решить вопрос:
или все делается по образу и подобию 83 года или в конструкцию вносятся изменения. Не стоит забывать, что авторы могли задумать многое, но публиковать компьютер на 300 (недоступных) микросхем со всеми раширениями не стали.

и главное: что Вы будете на нем гонять?

vinxru
01.11.2011, 19:09
vinxru, тут бы сразу решить вопрос:
или все делается по образу и подобию 83 года или в конструкцию вносятся изменения.

Цель первая. Схема остается без изменений! Дополнительные 4 перемычки и 2 пустые панельки под память на плате не в счет. Их можно даже не запаивать.

Цель вторая. Сделать дополнительный режим активируемый перемычками. 256 символов размером 8x10 и замена белого снега на экране на черный снег.


и главное: что Вы будете на нем гонять?

Я адаптирую (со временем) весь софт с РК86, Апогея и подобных компьютеров. Ну кроме специфичных программ, например, на Апогее есть гоночки с граф. разрешением 160x96.

Будущие владельцы Микро-80 думаю так же подключатся. Там же текстовые игры, сложность минимальная.

Ну и сам игр понапишу. Их же можно на C писать. Я мелкие игрушки ради развлечения пишу: http://tmaplatform.ru/media/arcanoid.html, http://tmaplatform.ru/vinx_home_page/bomberman/bomberman.html, http://tmaplatform.ru/vinx_home_page/miner/miner.html, http://tmaplatform.ru/vinx_home_page/15/15.html и там где то еще есть. На каждую игру у меня не больше вечера ушло.

Titus
01.11.2011, 19:20
на Апогее есть гоночки с граф. разрешением 160x96.
192x128

vinxru
01.11.2011, 20:07
Кстати вот тут исходники Альтаир-бейсика с комментариями.

http://www.interact-sw.co.uk/altair/index2.html

AIS
01.11.2011, 20:32
Если что-=то менять, то почему бы не сделать загружаемый знакогенератор - заменить рф2 на ру10. Ну, конечно схему загрузки добавить. ру10 вроде тогда уже делали.

Atari
02.11.2011, 00:31
загружаемый знакогенератор - заменить рф2 на ру10
схема "загружалки" будет очень немаленькая.

гараздо проще применить скажем 27256 и набить её знакогенераторами на полную фантазию а потом переключать дип свичами.
кстати, думаю, фантазия закончится быстрее чем ПЗУ.

vinxru
02.11.2011, 13:53
Если что-=то менять, то почему бы не сделать загружаемый знакогенератор - заменить рф2 на ру10. Ну, конечно схему загрузки добавить. ру10 вроде тогда уже делали.

Придется ставить дополнительную ПЗУ на 4 Кб, так как основная ПЗУ всего 2 Кб и занята полностью. А раз такое дело, то лучше сделать триггер, который бы переключал в качестве знакогенератора ОЗУ<->ПЗУ. То есть, параллельно ПЗУ припаять ОЗУ и переключать их CS-входы.

В видеоадаптере Микро-80 применены микросхемы РУ2 объемом 1 КБит. Вот их и надо применять. Нам потребуется 6x3 Килобита под знакогенератор 256*6*10. Это уже 18 редких микросхем + дешифратор адреса (155ИД4).

Это уже слишком много, что бы это делать.

А далее, нам нужно только 5 корпусов. Несколько корпусов (155ЛН1, 155ЛА7), которые будут при обращении к адресам F000-F005 подавать сигнал записи на РУ2. Если мы заполним видеопамять идентичными значениями, то на 8 адресных линиях РУ2 будет всегда нужное значение. На остальные 4 линии адреса ставим мультиплексор (2x155ЛР1 + 155ЛН1) к которому подключаем шину адреса процессора.

И вот такой способ записи:

void setChar(byte charCode, byte* charData) {
``for(i=0; i<2048; i++)
````memory[0xE000+i] = charCode;
``for(i=0; i<6; i++)
````memory[0xF000+i] = charData[i];
}

Можно конечно мультиплексор поставить на все линии адреса, но для этого потребуется еще 4 корпуса 155ЛР1. И еще триггер, что бы сделать возможность отключения знакогенератора от ценного адресного пространства.

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

b2m
02.11.2011, 14:23
Можно обойтись и меньшим количеством микросхем, если сделать порт F000 так, чтобы при чтении из него выдавались младшие биты адреса знакогенератора, а при записи - записывался бы байт по текущему адресу в знакогенератор. Процедура записи ОЗУ знакогенератора должна будет подождать нужный адрес и сразу записать байт (64мкс будет достаточно). Заполнив экран особым образом можно ускорить загрузку знакогенератора. Итого - пара шинных формирователей для чтения/записи порта и немного логики.

---------- Post added at 15:23 ---------- Previous post was at 15:16 ----------

В качестве шинных формирователей можно использовать две 589АП16.

Atari
02.11.2011, 14:51
два момента:

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

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

vinxru
02.11.2011, 15:11
загружаемый ЗГ не позволит организовать к-либо отладку до его загрузки, что иногда критично.

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

Если так дальше развивать идею, то у нас получится MSX без спрайтов. То есть видеоадаптер ПК80xx. :) А потом добавим 4 цвета на символ и скроллы и получится NES без спрайтов.

Я бы делал, но не буду, аппаратное копирование изображений 8x8 с учетом прозрачности. Процессор бы отправлял три значения: номер спрайта, X, Y. Если сделать отдельную видеопамять, то вывод спрайта займет 64 такта, что при скорости в 8 Мгц равно скорости выполнение нескольких команд процессора 8080. За это время он как раз успеет загрузить следующие N,X,Y. Схема громоздка, но проста как валенок.

Это уже было бы похоже на MSX2

b2m
02.11.2011, 15:50
Был такой комп ПК8002, так там и спрайты были, на рассыпухе. И схема не такая уж громоздкая была, одноплатный, в корпусе Корвета.

Atari
02.11.2011, 16:00
imho спрайты нужны для портирования мегаигр, но зачем портировать с MSX или NES если проще использовать оригинал?

а вот для написания программ на бейсике текст и графика будут очень кстати.

vinxru
02.11.2011, 22:43
Еще один вариант компьютера:

Процессор 580ВМ80
ПЗУ 27256
ОЗУ 62256
580ВВ55 для клавиатуры, магнитофона.
Видеоадаптер на одном корпусе ATMega (http://www.tinyvga.com/avr-vga)
И еще 4 корпуса примитивной логики и получится компьютер.

:)

AIS
02.11.2011, 23:34
Компьютер-то получится, но какой интерес в такой конструкции?
Мало корпусов? Да пробегала ссылка на комп на одном корпусе Атмеги - с клавиатурой, вывод на ВГА монитор, загрузкой программ и встроенным бейсиком - всё это на одной микросхеме.
Мне вот интересно даже не старые компы, какими они были, а какими они могли бы быть. Если бы меня сегодняшнего закинуть в те времена, как бы я сделал?

вот почитал интересное сообщение:
http://www.zx.pk.ru/showpost.php?p=429802&postcount=5
"Можно пойти дальше, и предположить, что процессор хочет данные всегда, когда Ф2 0=>1 (для Z80 надо бандить на оба перепада). Для надежной работы ВМ80 можно просто выделить квант времени от Ф1 до Ф2 (одна четверть такта Ф2):
Код:
F1- _________---_________---_________---
F2- ------______------______------______
ARB |CPU| |CPU|
И в этот квант полностью предоставлять память процессору (сигнал записи маскировать им же). И тогда 3/4 оставшегося времени использовать память по своему усмотрению."
Тоесть если 1/3 времени предоставить одному процессору, то в оставшиеся 3/4 времени к памяти успеют обратится ещё 3 процессора?
Правильно ли я понял, что если тактовые сигналы нескольких вм80 сдвинуть относительно друг друга, то 4 процессора смогут работать с общей памятью?
Тогда 1 процессор сможет выводить видео, другой звук в нормальном качестве,
третий подсасывает в это же время новые данные с диска\карточки памяти, и четвертый всем этим управляет.
Такая вот колхозная Амига на вм80.
Или может не стоит городить такие огороды, а вместо 4-х двухмегагерцовых процессоров взять один 8-ми мегагерцовый и будет тоже самое?

Atari
02.11.2011, 23:40
Еще один вариант компьютера:

Процессор 580ВМ80
ПЗУ ...
ОЗУ ...

если в слове хлеб сделать 4 ошибки то получится "пиво"

а если 580вм80 поменять на 6502 - Apple I

;)

vinxru
02.11.2011, 23:43
Да пробегала ссылка на комп на одном корпусе Атмеги

У атмег мало оперативной памяти и программы хранящиеся в оперативной памяти выполнять нельзя, поэтому хреновый компьютер.

А интерес в этом компьютере такой, что на нем можно CP/M запустить.

Atari
02.11.2011, 23:46
Тоесть если 1/3 времени предоставить одному процессору, то в оставшиеся 3/4 времени к памяти успеют обратится ещё 3 процессора?
Правильно ли я понял, что если тактовые сигналы нескольких вм80 сдвинуть относительно друг друга, то 4 процессора смогут работать с общей памятью?

смогут, но не долго, как три хозяйки на одной кухне

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

vinxru
02.11.2011, 23:49
Такая вот колхозная Амига на вм80.

Только кто программы писать будет под четырехпроцессорный компьютер?

Atari
02.11.2011, 23:56
Тоесть если 1/3 времени предоставить одному процессору, то в оставшиеся 3/4 времени к памяти успеют обратится ещё 3 процессора?

выполнение различных команд происходит за различное время в течении от 1 до 5 машинных циклов.

в любом случае у вас между процами произойдет рассинхрон (практически сразу) и о безветовости можно забыть.

vinxru
02.11.2011, 23:56
А идея использовать ATMega в качестве видеоадаптера прекрасна как оргазм. :)

AIS
03.11.2011, 00:03
Четыре процесоора на 64Кб памяти это, конечно не то. К каждому из 4-х процессоров добавляем регистр 8-ми разрядный для номера текущего сегмента, в котором работает данный проц. При обращение проца к памяти к старшим адресам подключается этот (для каждого из процессоров свой) регистр. Итого 16+8 линий адреса адресуют 16Мб памяти. При таком запасе памяти ожиданий будет минимум. Можно заранее всего назагружать, потом переключать страницы.

vinxru
03.11.2011, 00:04
выполнение различных команд происходит за различное время в течении от 1 до 5 машинных циклов.

в любом случае у вас между процами произойдет рассинхрон (практически сразу) и о безветовости можно забыть.

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

Процессоры вообще мешать друг другу не будут. Просто память будет в 4 раза быстрее шевелиться.

AIS
03.11.2011, 00:20
в любом случае у вас между процами произойдет рассинхрон (практически сразу) и о безветовости можно забыть.
Зачем синхрон потактовый тут нужен? Центральный проц дает задание процу ввода вывода загрузить массив с музыкой в такой-то сегмент. Пока идет загрузка муз проц не отвлекается, доигрывает старую мелодию. Потом центральный проц запускает в этот сегмент проц музыки и тот играет заданный отрывок - один раз или в цикле.

---------- Post added at 00:20 ---------- Previous post was at 00:09 ----------


Просто память будет в 4 раза быстрее шевелиться.
Подумал - 4 двухмегагерцовых будет круче намного , чем 8-ми мегагерцовый проц.
Так как в четыре раза будет больше внутренних регистров - 4 программных счетчика, 4 аккумулятора и тд.
Эх, концепции, концепции, ... вот сделал бы кто...
Ну пусть даже просто нарисует схемку, я бы спаял...

Atari
03.11.2011, 01:27
Вот и предлагается память подключать не на весь такт, а только на четверть такта.

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

---------- Post added at 22:26 ---------- Previous post was at 22:21 ----------


Центральный проц дает задание процу ввода вывода загрузить массив с музыкой в такой-то сегмент. Потом запускает в этот сегмент проц музыки и тот играет заданный отрывок - один раз или в цикле.

это только в случае с музыкой

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

---------- Post added at 23:27 ---------- Previous post was at 22:26 ----------


каждому из 4-х процессоров добавляем регистр 8-ми разрядный для номера текущего сегмента, в котором работает данный проц.

это все очень интересно при реальной многозадачности

может у меня не очень с фантазией, но приведите пример как бы Вы видели несколько задач на 86РК и главное - каких ?

HardWareMan
03.11.2011, 08:46
Рассчитывал я уже арбитра на соседнем (http://www.nedopc.org/forum/viewtopic.php?t=7540&postdays=0&postorder=asc&start=150) форуме.

Первые наброски по подключению 4х КР580ВМ80А к одной шинке. Все ресурсы могут быть расшарены, если всю шину адреса замультиплексировать. Итак, схема:
http://savepic.su/616808.png
Входящая тактовая частота - 10МГц. Это позволяет формировать F2 на частоте 2,5МГц - проверенная хорошая частота для ВМ80. Таймслот получается равен одному периоду частоты 10МГц, или 100нс, что не так и мало и можно использовать достаточно медленные ОЗУ (не забываем задержки на установку адреса в мультиплексорах и т.д.). 2 триггера образуют счетчик на 4 положения. Результирующие сигналы 5М и 2М являются одновременно и сигналом номера активного процессора (0..3), который следует подавать на мультиплексор адреса. Сам мультиплексор можно собрать из 8 микросхем 555КП2 (в одном корпусе 2 мультиплексора, а надо коммутировать 16 линий). Сигнал F1 каждого процессора можно (и даже нужно) использовать как гейт для сигналов RD/WR этого же процессора. Или так же тупо поставить еще один корпус 555КП2. Всего получилось 4 корпуса следующего комплекта: 555ТМ2, 555ЛП5, 555ЛН1 и 555ЛИ1. Если высоковольные буферы имеют инверсию (ЛА8, к примеру), тогда 555ЛИ1 меняется на 555ЛА3, а в наборе сигналов F2 нужно просто сменить местами F2_1 с F2_3 и F2_2 с F2_4. А теперь эпюры:
http://savepic.su/635240.png

А что касается:

идея понятна, но вот насчет реализации есть сомнения.
Так вот, реализация, как говорится, реализована и показала себя только с лучшей стороны. Железный пример: Специалист МХ2 (http://zx.pk.ru/showthread.php?t=12316&page=52).

AIS
03.11.2011, 11:18
может у меня не очень с фантазией, но приведите пример как бы Вы видели несколько задач на 86РК и главное - каких ?
1,Вывод звука
2,Вывод видео
3,Подгрузка новых данных с флешки
4,Главный процессор
Без лишней заумной многозадачности - например в General Sound стоит свой процессор , и спек с подключенным General Sound это как бы двухпроцессорная система . Просто каждый проц занимается своим делом. Но память у них общая и можно в принципе "тяжелые" вычислительные задачи разделить между всеми процессорами.

KokaF77
03.11.2011, 11:32
например в General Sound стоит свой процессор , и спек с подключенным General Sound это как бы двухпроцессорная система .
Ну тогда у нас любой компьютер к которому подключен IDE винчестер - тоже многопроцессорная машина. Не совсем корректный пример. :)

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

AIS
03.11.2011, 11:38
HardWareMan, Ну вот, оказывается всё давно уже придумано. ;)))
В принципе можно собирать , для начала 2 прца в связку - основной проц + видео проц. Только надо придумать как конкретно будет работать процессор видео - просто заменять мелкую логику или...

---------- Post added at 11:38 ---------- Previous post was at 11:33 ----------


Но с мультипроцессорностью, в применении к РК-86 (и аналогичных), мне кажется перебор.
Нет тут мультипроцессорности настоящей - одна задача не распараллеливается на несколько процессоров. По сути это компьютер с одним центральным процессором, и с процессорами, выполняющими роль контроллеров звука, видео и ввода-вывода. Так что аналогия с General Sound здесь самое то.

KokaF77
03.11.2011, 11:50
Нет тут мультипроцессорности настоящей - одна задача не распараллеливается на несколько процессоров. По сути это компьютер с одним центральным процессором, и с процессорами, выполняющими роль контроллеров звука, видео и ввода-вывода.
А какой тогда смысл делать общую память, да ещё супер-сегментированую? Понятно , что общая память должна быть, но не вся. В противном случае надо будет очень сильно помудрить с диспетчером памяти. У каждого контроллера есть чётко описанный "круг задач", и особого смысла в доступе ко всей памяти не вижу, за некоторыми исключениями. Достаточно для обмена одного "окна".

AIS
03.11.2011, 11:57
Процесору ввода- вывода нужна вся память - данные надо везде загружать, центральному процу тоже. Чтобы не ограничивать количество подгруженных данных для последующего вывода звука и видео остальным процессорам тоже полезна возможность доступа ко всей 16Мб памяти

HardWareMan
03.11.2011, 12:09
А лично мне, установка второго проца в тот же Специалист интересна другим. Это же реальный аппаратный отладчик на реальном процессоре и с отладкой на самом же устройстве! Один супервизор, крутит программу отладки и все такое, второй ведомый, управляющие сигналы которого (WAIT, RESET и т.д.) заведены на порт супервизора и могут быть управляемы в любое время. Останется только считывать текущий адрес и данные ведомого и все. Ну а житаг можно сэмулировать прерыванием, которое вызывать четко каждую команду. А так как подтверждение прерывания - то же машинные циклы, то супервизор может кормить ведомому процессору сразу нужные команды через (специальный регистр) и тем самым не занимать прерыванием рабочее ОЗУ (если от прерывания нужно только дампить регистры то программка может быть всего несколько байт).

Atari
03.11.2011, 12:29
HardWareMan, я ж не спрашиваю как ращепить тактовую на 4 фазы, я спрашиваю как потом сигналы обращения к памяти и периферии от процов собирать в одну кучу.

на всякий случай: время выборки современной фиолетки ~200 нс, флешки <100 нс, вашей любимой РФ1 > 400 нс.

KokaF77
03.11.2011, 12:37
остальным процессорам тоже полезна возможность доступа ко всей 16Мб памяти
Вот к этому:

я спрашиваю как потом сигналы обращения к памяти и периферии от процов собирать в одну кучу.
я и веду.
Для каждого процессора придётся городить свой диспетчер памяти. А учитывая, что система должна быть достаточно гибкой, этот узел (для каждого ЦПУ свой) будет весьма не маленький. Потом все они должны работать более-менее согласованно, каждый должен знать с каким куском памяти ему работать. И подобных моментов, если подумать, можно ещё энное количество насобирать.

HardWareMan
03.11.2011, 12:56
HardWareMan, я ж не спрашиваю как ращепить тактовую на 4 фазы, я спрашиваю как потом сигналы обращения к памяти и периферии от процов собирать в одну кучу.

на всякий случай: время выборки современной фиолетки ~200 нс, флешки <100 нс, вашей любимой РФ1 > 400 нс.
В моем варианте получилось 100нс/временной слот. Адреса и данные мультиплексировать. Можно сделать шину с Z, адреса и данные конкретного процессора подключать к ней только на время слота обращения конкретного номера процессора (и его фазы). Тогда весь этот ваш т.н. "арбитр" сведется к обычным буферам, которые и так ставить надо. При этом можно собрать плату первого процессора, а потом добавить второй и остальные по мере изготовления. И можно будет взаимозаменять их.

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

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

PS А с чего это вдруг РФ1 моя любимая микросхема? Я люблю буржуйские флешки и статическое ОЗУ большого обьема.

Atari
03.11.2011, 13:19
с большИм удовольствием понаблюдаю за развитием темы, хотя бы теоретическом...

AIS
03.11.2011, 19:54
Про программное разруливание я ничего не говорю. Тут нужна сложная программа.
Предлагаю не усложнять. После сброса каждый проц стартует и программно крутится каждый в своём "биосе" - программе в ПЗУ (физически это может быть одна на всех микросхема ПЗУ)
Можно усложнить - центральный проц загружает "биосы" остальных процев и после этого запускает их.

Может быть чтобы както приблизится к реальности и обкатать идеи сделать для начала на этой архитектуре , например, Орион с General Sound и загрузкой с флешки?

vinxru
03.11.2011, 20:03
Если процессоры работают с разными адресными пространствами, то это уже не многопоточность, а просто несколько процессоров. Это что то типа УНКЦ получается.

А прикиньте, четырехпроцессорный ZX Spectrum. Каждый процессор будет отрисовывать свою часть экрана. Вот это вещь.

Atari
14.11.2011, 18:42
да, к стати, почему бы не придумать нормальный аппаратный курсор?

схема дешифрации, два регистра, три искл-или, две больших И, всё...

в добавок остается 5 (2+3) бит на разное управление, например для переключения знакогенераторов.

vinxru
15.11.2011, 14:01
Можно поставить три-четыре ИЕ7. Загрузка значения в счетчики из регистров будет происходить по сигналу КСИ. При выводе очередного символа, будем уменьшать счетчик. Выход переполнения счетчика и будет сигналом для вывода курсора.

И еще можно упростить. Добавить RS-триггер, блокирующий уменьшение счетчиков с момента записи в них значения и до КСИ. Тогда регистры не нужны. Записывать в них значение можно прямо с шины.

Итого 3-4 шт ИЕ7, дешифратор адресов подающий сигнал загрузки в счетчики и на отображение курсора один ИСКЛ ИЛИ.

Atari
15.11.2011, 14:14
но тогда положение курсора надо будет каждый полукадр записывать по прерыванию от КСИ

vinxru
15.11.2011, 14:16
За кадр счетчики должны сделать полный круг и вернуться в исходного состояние.

Atari
15.11.2011, 14:24
по количеству монтажа такое решение однозначно выиграет, но все логики я до конца себе еще не представляю.

vinxru
15.11.2011, 14:31
Вроде подобная схема наложения спрайтов была в TIA Atari 2600. Только там оси Y не было, программист должен был перед выводом каждой строки информацию о спрайтах заносить.