Вы против того что люди фантазируют? Замечу, в разделе "разное". Наверное своими фантазиями вас этим отвлекли от куда как более серьезного проекта который вы вот-вот нам предъявите? Нет правда, мне тон сообщения не понятен, как и то почему оно адресовано мне - мое предложение ничуть не более экзотическое чем тут уже прозвучавшие, а наоборот - наиболее очевидное в направлении чтобы используя предложенную топикстартером идею, можно было выдать реальный аппарат, который "проще программировать".
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Jedem des Seine. Каждому своё - любимая поговорка Гитлера.Сообщение от rl76
А какой интерес, повторять то, что до тебя уже сделали тысячи раз? Сюжет-то вовсе не в том, чтобы получить 8-ми разрядный компьютер, даже с выдающимися свойствами. Мне это как раз не важно. У меня уже есть 5 разных 8-ми разрядок, потому сюжет не в том, чтобы получить ещё одну.
В данном случае интерес как раз и заключается в "извращении". В реализации идеи, которую я когда-то обдумывал, тщетно пытаясь обойти ограничения железа, но так и не сделал, т.к на КР580 эта идея не работает. Сюжет заключается в том, чтобы проверить концепцию. А также и доказать, что реально было сделать компьютер лучше, чем РК86, истратив меньшее число деталей (естественно того же периода). Кстати, интереснее было бы получить экран в 256 точек на КР580, но пока, кроме использования ПДП и тупой идеи двух одновремнно читаемых банок, ничего не придумал. Кто-нибудь может разработать такой простейший компьютер на КР580 с экраном в 256*192?
Кстати, что получится, если делать графический компьютер "в лоб"? Если сделать экран шириной в 256 точек, то получится СИНКЛЕР. Если сделать экран в 320, то получится ИРИША в цвете. А если сделать экран в 384, то в монохроме получится СПЕЦИАЛИСТ, а в цвете ОРИОН. С экраном в 512 получится Вектор. А с экраном в 640 снова получится ИРИША, но в монохроме.
Да и что можно изменить в "лобовых" вариантах? Можно поменять микросхемы в видеогенераторе (ИЕ5, ИЕ7 заменить на ИЕ10, ИЕ19). Можно умнее организовать цвет и разогнать Z80B до физического предела, используя интенсивное водяное охлаждение. Но мне это не интересно. И тратить труд и время (паяя целый комп), только для того, чтобы спаяв его, с ужасом убедиться, что программ для него нет и не предвидится, - нет особого желания. Естественно, тут кто-то скажет, что надо применять ПЛИС. Но в этом я ничего не понимаю, и это не интересно.
Поэтому в наше время интерес представляют именно извращения. В данном случае это аппаратно программный компьютер, оттого интересно проверить в реале саму концепцию и найти оптимум. Я уверен, что есть лучшие варианты. Да даже тот же вариант с цепочкой NOP даёт вдвое лучшее разрешение и реализуем с тактом уже в 3 МГЦ. Аналогичный вариант с ПДП тоже даёт вдвое лучшее разрешение. Но пайки больше, напряжения мозгов больше, а это меня пугает. В предложенном варианте, по крайней мере, всё просто и ясно. Если бы я хотел повторять чужое, то я бы повторил BCS-3, он грамотнее, чем ZX80 (т.к экран в нём не мигает).
Я и паять-то собрался только потому, что есть уже готовая платка куда без больших трудозатрат остаётся добавить недостающее. Для меня больше интереса написать ROM-BIOS, чем припаять недостающие 5-6 микросхем и отладить.
Последний раз редактировалось barsik; 17.04.2017 в 19:40.
Error404, и такой компик, ЕМНИП, тоже был. Но это было очень давно, более 8 лет назад, вроде. Но тут я согласен: если сделать двухпроцессорную систему и одно ядро не отвлекать от видеорендеринга, то может получиться годно, даже псевдовекторная графика (растеризованный вектор). Либо можно потушить экран и долбануть расчет на двух процессорах, что тоже вкусно.
Кстати, яркий пример подобной идеи (но к сожалению не вышеупомянутого компьютера, я если вспомню то обязательно сообщу) это Пропеллер. Куча "видеоприставочек" на нем наклепали. А что, удобно же, 8 ядер, общая память.
Сейчас меня интересуют другие проблемы, не двухпроцессорность. Пока обдумывал реализацию, у меня возникла ещё пара соображений. Текста много, но если не нравится, - не читай ! А то потомки Эллочки-людоедки, те, кто общаются одними междометиями, ставят в упрёк, что якобы я пишу простыни. Если админ не запретил, то кого это волнует?
Идея двух процессорности не нова. Один знакомый сделал из ИРИШИ комфортабельный терминал к плате СИНКЛЕРА в 1989. Именно так - терминал, а не двух процессорная система. Понятно, что преимущество такой системы в том, что можно разгонять основное ядро используя водяное охлаждение (до физического предела 10-ти нано секундных ОЗУ и 20-ти мега герцовых Z80). Особого смысла в этом не вижу, кроме того, что имея большую скорость можно эмулировать любой другой комп, у кого графический экран хуже по разрешению. Но я не вижу никого, кого бы интересовала эмуляция на Z80. А мне для эмуляции в реальном времени надо не менее 25 МГЦ скорости Z80.
Впрочем, такта 10-12 МГЦ хватает для более-менее приемлемой эмуляции РК86. Но сейчас в этом нет интереса, который был в начале 90-х,- теперь у всех есть PC с эмуляторами. А других сфер применения для скоростной двух процессорной системы не вижу. Хотя двух процессорная система с таким тормозным терминалом имеет одно применение - это недорогой "чисто CP/M" компьютер с довольно приличной скоростью Z80 в 8 МГЦ (Z80B).
Хотя для CP/M-системы я бы рекомендовал внешний текстовый адаптер (10 ИМС МП-ядро и 30 ИМС текстовый адаптер), но, и данную концепцию можно использовать в качестве убогого текстового терминала, если придумать, как получить экран хотя-бы в 400 точек по горизонтали. Тормознутость Z80 ~2.3 МГЦ в терминале не особо важна, т.к критична только скорость ролика, а здесь это можно делать быстрее, используя переназначение адресов строк, что ускоряет ролик в 10 раз.
Может быть сделаю в итоге двух процессорную систему (10 МГЦ, например, для эмуляции СПЕЦИАЛИСТА и РК86), но так далеко не планирую. Я хотел бы получить лишь дешёвый вариант цветного бытового компьютера с минимальным числом корпусов (параметры не особо важны). Для чего достаточно экрана 256/288 точек, что даёт 42/48 символов в строке (фонт 6*8). Склоняюсь к мысли, что оптимальным будет не байтовая организация экрана, а шести-битовая, т.к это одновременно решает 2 проблемы. Это удобнее также и, чем ниже описанная, более сложная в программировании, но дающая лучшее разрешение 15-ти битовая система (смотри далее).
Шести-битовость, во-первых, в 3 раза ускоряет вывод шрифта 6*8. Во-вторых, даёт возможность получить 8 цветов на экране минимальной ценой. К тому же при сохранении линейной организации памяти. В третьих, отпадают проблемы раскраски шрифта (как на ОРИОНЕ). Для цвета использую идею Стива Возняка (именно поэтому привёл ранее описание цвета в Apple-II). Итак, если не будет лучших идей, то будет так. Визуализация командой POP HL, 12 тактов на вывод 2-х экранных байтов. Из каждого экранного байта 6 битов идут в сдвиговый регистр и затем в телевизор, а 2 бита тратятся на цвет.
Пока не решил как использовать эти 2 бита, т.е какой цвет сделать. Тут 2 варианта. Первый вариант, удобен лишь для текстообработки. Это 4 предустановленных цвета (расход деталей в 155РЕ3). Второй вариант - это 8 цветов, но с потерей цветового разрешения по горизонтали, более подходит для игр. В таком варианте, цвета 00 и 01 - это 2 предустановленных цвета (жёлтый на синем и желтый на красном). А сочетания 10,11 закрашивают только те пиксели, где бит в единице и дают 2 цвета по принципам Apple-II, т.е для четных точек имеем 2 цвета, а для нечётных точек 2 других цвета. Если две соседних точки засвечены, то они белые, все погашенные точки чёрные. Т.е это в чистом виде цвет Apple-II с добавкой 2-х предустановленных цветов. Такой вариант даёт больше возможностей, но требует больше корпусов.
Думаю, 2-х битовый цвет меня не устроит и придётся сделать более грамотный цвет. Для чего я добавлю параллельную банку ОЗУ 6514 (это древняя 4-х разрядная скоростная статика из 80-х, аналог 2114/541РУ2). В данной концепции удобно ставить параллельные банки с другим методом адресации (т.к нет адресных мультиплексоров). Для этого адреса 6514 A0...A9 будут адресоваться следующими сигналами шины: A0...A4, A8...A12. Т.к адреса A5-A7 пропущены, 8 линий будут одинаковыми, что и даёт знакоместный цвет, как в ZX-Spectrum. Только знакоместо 6*8 и организация иная. 4 бита для цвета символов считываются из ОЗУ 6514, а цвет фона берётся из 2-х излишних битов экранной плоскости. Но ОЗУ 6514 не включено в адресное пространство, а цвет в него автоматически пишется из 4-х битового регистра цвета. В принципе, можно и два бита каждого экранного байта писать из регистра цвета, но на это надо лишние 2 корпуса. Цвет с автозаписью из регистра цвета впервые применён в СПЕЦИАЛИСТЕ и оказался самым быстрым цветом 8-ми разрядок.
Чтобы увеличить в 1.5 раза разрешение или во столько же раз понизить такт Z80, придумал следующее:
Цель - получить 15 импульсов для сдвигового регистра за 10 тактов процессора. Для этого ставим кварц 16.5 МГЦ (уже имею) и делим его на 3, получая такт Z80, и на 2, получая такт сдвига точек. Тогда разрещение увеличивается в 1.5 раза. Экран читается командой POP HL, что длится 10 тактов и читает в регистры 16 бит. За 10 тактов на экран выдвигается 15 пикселей. Считаем, какой тогда возможен минимальный такт. 17 команд POP HL читают 17*15=255 пикселей. А это 17*10=170 машинных тактов. Тогда пиксельный период равен 52 МКСЕК : 170, частота 3.269 МГЦ. Столько КР580 потянет, но лишь вместе с ВК28.
Жалко. А если согласиться на меньший экран? 15*15=225 точек. А требуемый такт КР580 составит 1: (52:150)= 2.88 МГЦ. А вот это уже КР580 вполне потянет. 225 точек дают текстовый формат в 37 символов в строке. Немного, но и в таком режиме писать программы на ассемблере можно. К тому же 1 лишний бит остаётся для цвета.
Теперь посчитаем, какой максимальный формат экрана получается при 15-ти битовой системе с Z80 на такте 6 МГЦ. При 6 МГЦ в 52 МКСЕК развёртки умещается 312 машинных тактов, это значит 31 команда POP длиной в 10 тактов, что дают 31*15= 465 экранных пикселей. А при кварце 10 МГЦ за 52 МКСЕК выполняется 52 POP-а, что дает 52*15= 780 пикселей (значит с частотой строк VGA будет 390 точек).
Посчитаем, какой минимальный такт Z80 нужен для экрана в ~400 точек. 27*15=405, значит надо 27 POP-ов. При 10-ти байтовых POP HL они длятся 270 маш.тактов и 52 МКСЕК. А это соответствует такту Z80 в 5.19 МГЦ. При 5.5 МГЦ будет удобен экран в 420 точек, что реализуется 28-ю командами POP HL. Экран 420*192 точек при шрифте 7*8 даёт текстовый формат 60*24. А при шрифте 6*8 будет 70 символов в строке. Такой режим привлекателен, но смущает, что придется писать хитрый драйвер текста, а главное невозможно полноценно раскрашивать шрифты, т.е это вариант скорее для монохрома и игр.
Раз дочитали, вот Вам совсем досужие рассуждения "в пользу бедных":
Если можно ограничиться маленьким разрешением экрана (например для индикации в контроллере), то вывод линии растра можно делать командами LD A,(HL) : INC L, что вместе занимают 11 тактов, но читают из экрана только 1 байт. Для текстового вывода этого достаточно (8 точек на символ и 3 точки межсимвольная пустота). При такте 5.5 МГЦ это дает 288:11=26 символов в строке. Зато при этом отпадают 2 регистра и расход деталей на видеовывод становится совсем маленьким.
Удлинив с помощью WAIT команду чтения экрана на 1 такт, получаем 12 тактов, тогда получить 6 импульсов из такта Z80 не проблема (делим на 2). Тогда при такте Z80 в 6 МГЦ получаем разрешение 168 точек по горизонтали или 26 символов в строке при шрифте 6*8. Экрана 168*128 для текстообработки явно мало, но для игр хватит. Можно подумать и о таком варианте. Стоит это экономии в 2 дорогостоящих регистра?
error404, для VGA эту же самую идею надо реализовать на ПЛИС, которые вроде бы достаточно скоростные для этого.
Последний раз редактировалось barsik; 20.04.2017 в 07:13.
я понимаю, что в первую очередь интерес - это создание такого компа, но какая то программная совместимость намечается?
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Тема насамделе на 90% про графический и токо на 10% про компьютер, и тут она созвучна с темой что максимум можно выжать из ВГ75 (только в более широком смысле).
Думаю интерес к теме будет если:
1. НЕ лепить Z80 (~5000тр) всего-то как ГОЛЫЙ видеоконтроллер (типа как в ZX80/81). Потому что универсальный проц не для спец функций совсем, и в таком случае логичнее влепить v9958 ($12). В принципе можно добавить его как часть адаптера для обеспечения гибкости (пример КЦГД для ДВК);
2. НЕ лепить "новодел" (это ARM, AVR, CPLD, FPGA...) потому что тогда - берите ISA VGA чип и 16/32bit процессор и будет Вам свой собственный недо-ATARI ST;
3. ЛЕПИТЬ на 74ALS и PAL/GAL (RT1,2,4,5,7...);
4. качество картинки должно быть не хуже чем у ZX-а (минимум как у Вектор-а) а скорость в разы быстрее чем у ZX-а.
(т.е. по-моему мнению тема будет интересна если слепить шото по моще как Sega MASTER / MSX2+ но свое "на рассыпухе")
Если говорить о простейшей конструкции, что я планирую сделать, то в силу того, что я не смогу иметь быстродействие выше 6 мгц, что даёт не более 288-320 точек в строке, а компьютеров с таким экраном нет, то просто не с чем совмещаться аппаратно. Но программно, т.е по входным точкам принятым в отечественных ЭВМ совместиться не проблема.Сообщение от Shumadan
Было бы неразумно не иметь стандартных для отечественных 8-ми разрядок входов F803, F806, F809... Уже только одно это позволяет использовать кое-какое ПО, например ассемблер, теоретически даже BASIC (если удастся найти версию, что работает на Z80, а то у меня на Z80 не работали бейсики ни на СПЕЦИАЛИСТЕ, ни на ОРИОНЕ, в чём дело не знаю).
Но смысл в этих входах не в совместимости, она не волнует. Т.к то ПО, что я хотел бы на этом компе посмотреть, есть в исходниках, и нет проблем странслировать их с другими параметрами. А почти всё остальное системное ПО РК86 и ОРИОНА требует иного числа строк и без переделок всё-равно не годится. Эти входы удобно иметь только в силу привычки, чтобы не надо было запоминать других стандартов.
Последний раз редактировалось barsik; 20.04.2017 в 06:27.
ZX-NEXT приходит на ум, читая эту тему )
Нечто похожее использовалось в ДУ совковыми телеками на ВЕ51 в начале 1990-х, с индикацией огромных русских букв на экране .
Вероятно, могли быть и прототипы на Z80, т.к. ТВ с OSD продавались гораздо веселей, и их можно было внешне разукрасить под "Японию".
Блог : http://collectingrd.kxk.ru/ . В ЛС прошу не писать, все сообщения [email protected]
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)