На то время, в принципе понятно, проще разводка, меньше микросхем, дешевле плата и как бонус защита от копирования (ПЗУ видеопроцессора)
Это да, "полноценных" (где заняты все байты) не получиться, ИМХО
Вид для печати
На то время это было не лучшим решением, а на мой взгляд худшим. Смотрим схему профи, хоть 3.x -5.x. На плате видеоконтроллер занимает не больше места, если и больше то процентов на 10. При этом не использует дорогой на то время Z80.
А как защита ПЗУ не годится. Выпаиваем и считываем. ПЗУ на профи не было защитой, а являлось элементом "конечного автомата" который мы могли программировать, а точнее плавно менять параметры сигналов INT и синхронизации и ещё кое-чего.
http://zx.pk.ru/showthread.php?t=112
http://zx.pk.ru/showthread.php?t=7577
Если осилите эти два топика, думаю, вопросов станет меньше, или же наоборот, больше но в любом случае будет полезно...
ну, реально, конечно, разделить на 2 памяти по 64к можно, если нагородить огород:) поставив плисину и загнав в нее логику с длинами команд - это более чем реально, но монструозно. и М1, кстати, здесь вполне сгодится. наверное;)
Ясно ясно. Conan описывает метод взлома плавающих битов. Я бы так делать не стал сразу. Раз программа - стал бы дизассемблировать, хотя бы те куски которые читаются стабильно. Плавающих битов быть много не должно и 1000 раз считывать было бы не нужно. А вообще теперь ясно зачем всё это делалось. Но вот ведь как вышло. ZX-Next самый малочисленный клон из-за защиты от копирования.
---------- Post added at 15:49 ---------- Previous post was at 15:35 ----------
Прочитав половину первого топика могу сказать, что выбор такой схемы был по нескольким причинам, но главная это защита от копирования (о которой я раньше не знал, т.к. инфы о zx-next особо не было) и уж потом уменьшение деталей на плате. Если бы я знал о том, что в ZX-Next была защита от копирования ПЗУ видеоконтроллера, то и вопросов бы не возникло;-) В топике писали что типа её не взломать. Взломать можно. Распечатав листинг программы и много думая, отладчик не поможет, отлаживать придется в голове, придется и циклы расписать. О чем там Чунин Роман и говорит частенько. Читаем доки по Z80 и в путь. Работа сложная но не невыполнимая. Можно взломать это ПЗУ и сделать модификацию без плавающих битов. Это реально.
Взломать можно все, это вопрос времени и актуальности. Т.к. у меня нет ни плат ни эмулятора, то и смысла заниматься этим нет, результат проверить негде. Если БК все же пришлет набор плат, то тогда и продолжу начатые ранее ковыряния, тем более имеющаяся прошивка видео-контроллера позволяет проверить работоспособность компьютера.
К примеру, требуется выполнить вот такой код:
LD A, (BC)
LD HL, (nn)
LD I, A
JP (HL)
используя только три разряда (A0-A2) шины адреса Z80.
В любом случае для него потребуется (байт):
1 + 1
3 + 2
2
1
Итого: 10 байт памяти. Из них 7 байт кодов операций (команд) и 3 байта данных. То есть в общем пространстве комманд-данных адресовать его тремя разрядами (A0-A2) шины адреса Z80 невозможно.
Теперь разделим пространство команд и данных на две части (сигналом M1). Получим адресумемые 8 байт для команд и 8 байт для данных. Размещаем необходимые данные для команды:
LD A, (BC)
"под": JP (HL)
(BC указывает на адрес в сегменте данных, по которому в сегменте кода находится: JP (HL))
а для команды:
LD HL, (nn)
"под": LD A, (BC) и (первым байтом) LD HL, (nn)
(nn указывает на адрес в сегменте данных, по которому в сегменте кода находится: LD A, (BC))
В итоге получили возможность исполнять этот код, используя всего три разряда адреса шины адреса.
Разумеется, остались незанятыми (из 16 байт) 3 байта в сегменте команд (между LD HL, (nn) и LD I, A) и после JP (HL) и 5 байт в сегменте данных. Но для чего их использовать всегда находилось ;).
---------- Post added at 14:47 ---------- Previous post was at 14:20 ----------
Объясняю. В начале 90-х какой клон спека был самым популярным? Ага. "Ленинград 1". Почему? У него же инт кривой, вейты, адресация портов неправильная, системной шины нет, видеосигналы непойми какие. Одно недоразумение. Что же получается, люди были дураками? Ан нет. Дело в том, что в "Ленинграде 1" используется всего 41 (сорок одна) микросхема. При цене в среднем 3 рубля за корпус, получалось 123 рубля. Зарплата молодого инженера. И это самое дешевое. А если собирать "Москву 48", то это уже 68 корпусов. Да еще приходилось кондючки подбирать, что бы заработало.
Как сократить кол-во микросхем? В те годы ни циклонов ни альтер не было. Заказать БИС на БМК стоило слишком дорого. А Z80 продавались по 30 рублей. То есть, как десяток обычных микросхем.
В ZX-NEXT в минимальной конфигурации 36 микросхем + еще один Z80. Итого на 15 рублей (тех денег) дороже "Ленинград 1", но:
видеосигналы идеальные,
потры (включая #FF) корректные, инт на месте,
никаких вейтов,
возможности расширения большие (4/5 слотов),
настраивать (подбирать кондючки резючки) не надо.
И всего то потому, что второй Z80 с программой заменил кучку мелкой неизменяемой логики.
Conan, теперь многое ясно, но всё же. Микросхемы были не так дёшевы, помнится набор плата+детали в том же 89-м году для ленинграда-1 стоил 500-650р. Дешевле не было просто. В 1990-м около 800-900р. Микросхем в магазинах в нашем городе вообще не было, купить их было нереально. А реализация видеоконтроллера на счетчиках+прошивка ПЗУ более легкая и не менее правильная. Писать прошивку для zx-next чрезвычайно трудоёмкое занятие. На западе бы такими вещами думаю не стал бы заниматься. В плане защиты, думаю это была самая сильная защита из аппаратных на то время.
В наборы входили процессоры, ПЗУ, платы, мелочевка. На форуме уже обсуждали их стоимость, поищите. В вашем городе может так дорого продавали наборы, потому, что не было радиорынка. Хотя даже на Тушинском радионынке в Москве наборы продавали дороже, чем можно было купить по отдельности. Потому, что набор покупаешь у одного человека, а за рассыпухой еще побегать надо. Хотя цены колебались, в зависимости от доступности, наглости продавца, инфляции и т.д. В Питере было относительно стабильно и дешево, потому, что там радиорынок (в Автово) работал. А в Москве до весны 1991 радиорынка по сути не было. Гоняли радиолюбителей милицией. Попробуй при этом купи подешевле. Хватали абы что и по любой цене. Вот и колебались цены но самые низкие были именно летом 1991 года. Тогда мелочевка упала до 2-3-х рублей за корпус (ЛА, ЛЕ, ЛЛ и т.д.). А до этого стоили и по 5 рублей и по 10 (за редкие позиции типа КР580ВА86).
До сих пор нерасколотая ;). Хотя кто только не брался и КОЕ и JTN и т.д. Что касается трудоемкости, это правда, примерно как сборка головоломки. Зато интересно.
У реализации решения ПЗУ+счетчики есть свои плюсы и есть минусы. Впервые это решение появилось в "Красногорске" (не самом популярном клоне), а затем Михаил Яцык использовал его в "Профи". Леонид Ермаков (мой напарник по разработке ZX-NEXT) был знаком с Яцыком и оценивал его разработки весьма высоко. Но для ZX-NEXT решение ПЗУ+счетчики не подходило потому, что требовалось помимо видеосигналов и INT-а формировать еще адреса видеовыборки из ОЗУ (для перекючения между видеорежимо спека и CGA), изменять (уменьшать) период регенерации (что бы надежно работало), формировать медленные сигналы (FLASH). На ПЗУ+счетчики этого было не реализовать, пришлось бы устанавливать множетство микросхем дополнительно. И разумеется, защитить хотелось (хотя бы на первое время). С тем же "Профи" вышла нехорошая история, когда две фирмы потом его не поделили, а некоторым покупателям в случае проблем отказывали в поддержке (потому, что купил плату не их).
Что касается "на западе так бы не делали", так на западе в то время и фирменные ZX-ы уже прекратили выпускать. А если говорить про "плавающие" ячейки, так Intel по той же технологии ПЗУ выпускать стал, на 8 лет позже, чем они заработали в ZX-NEXT.
---------- Post added at 17:03 ---------- Previous post was at 16:35 ----------
А кстати курьезная штука получилась бы. С обычным спеком совместимая но с дополнительными фичами:
между имеющимеся командами можно еще команд наставить (в одном линейном адресном пространстве команд две разные программы, в зависимости от того с какого места стартовать) и данные под инструкциями прятать другие. Но программировать в такой среде - жуть.
Да, я в курсе. Читал в доках по профи, Sayman искал разработчиков, тоже кое что узнал, да и на форуме тут была инфа.
Я это понимаю, защита сделана хорошо, в ваших требованиях к разработке и фактах понятно что это было оптимальным решением (про CGA до недавнего времени не знал или забыл что был такой режим (сейчас только вспомнил, что в ZX-Форум была инфа тогда что есть видеорежим, но не был поддержан программно). Конечно на счетчиках+массив данных это не реализовать, я все понимаю, а своим высказыванием я хотел сказать вот что
1)Схема очень и очень сложная, это очень сложный конечный автомат, как клубок из которого торчат ниточки и дернув за каждую получаем некий результат который ещё и зависит от того что перед этим дергали. Академически это интересно, а вот практически... Сложно проектировать и создавать, ладно вы делали вдвоем, а если это компания где много сотрудников которые приходят и уходят, никто не поймет толком что и как. Т.е. разработка должна быть понятна и ясна, документирована. А тут сложная головоломка. При том, как я понимаю, возможности Z80 в ней практически исчерпаны, можно было взять и любой другой проц, важны состояния проца, режимы и кол-во выводов. Чем их больше - тем проще, не нужно использовать iorq m1 и прочее (как бы) не по делу. На западе все же сделали бы заказную мс. Да, я знаю что у нас это было нереально.
Я такие методы использовал. И видел как используют другие. Бывает очень выручает.
---------- Post added at 08:59 ---------- Previous post was at 08:49 ----------
2) Можно было бы сделать аналогичный функционал с т.з. пользователя (но без защиты от копирования) на другой элементной базе и в другом виде. Этот вариант уникальный, интересный, но развития практически не имеет. Захотим сделать что-то ещё от схемы придется отказаться. Те задачи и требования которые Вы тогда перед собой поставили - выполнили на пять с плюсом. Но это очень трудоёмко.
Ещё я хотел вот что сказать, наши кооперативщики ("Дисплей" которые делали Колоры) 700р и больше в месяц получали. Как же так Вы отдавали им по 1р за ПЗУ? Готовый комп они продавали за тысячу и выше. Нельзя было отдавать свои разработки. Ну не получилось со слотом, сами бы попробовали. Сделать свой бизнес. Найти деньги, занять, не знаю, ну не отдавать же ноу-хау дельцам.
---------- Post added at 08:59 ---------- Previous post was at 08:59 ----------
2) Можно было бы сделать аналогичный функционал с т.з. пользователя (но без защиты от копирования) на другой элементной базе и в другом виде. Этот вариант уникальный, интересный, но развития практически не имеет. Захотим сделать что-то ещё от схемы придется отказаться. Те задачи и требования которые Вы тогда перед собой поставили - выполнили на пять с плюсом. Но это очень трудоёмко.
Ещё я хотел вот что сказать, наши кооперативщики ("Дисплей" которые делали Колоры) 700р и больше в месяц получали. Как же так Вы отдавали им по 1р за ПЗУ? Готовый комп они продавали за тысячу и выше. Нельзя было отдавать свои разработки. Ну не получилось со слотом, сами бы попробовали. Сделать свой бизнес. Найти деньги, занять, не знаю, ну не отдавать же ноу-хау дельцам.
---------- Post added at 09:03 ---------- Previous post was at 08:59 ----------
У нас и не продавали, продавали в Челябинске на радиорынке (и то я узнал о этом уже году в 1992-1993). Кому было надо ездили туда и покупали, а у нас Спектрумы стоили выше тысячи рублей. В магазине видел комп (похожий корпусом на Атари-130) с монитором цветным за 4000р. Баснословная сумма.