RUЭВМ
Вы хотите отреагировать на этот пост ? Создайте аккаунт всего в несколько кликов или войдите на форум.
Сентябрь 2020
ПнВтСрЧтПтСбВс
 123456
78910111213
14151617181920
21222324252627
282930    

Календарь Календарь

Последние темы
» Тема для вопросов, консультаций и т. д...
автор Atari1974 Вчера в 16:12

» ZX Microdrive
автор barsik Вчера в 02:44

» Флейм только по теме "Радио-86РК".
автор barsik Пн Сен 28 2020, 09:24

» Трансформатор электронный Taschibra 230/12В 60Вт для галогенных ламп. Перестал работать.
автор Viktor2312 Ср Сен 23 2020, 15:05

» Купил с али БП 12в 100w для питания LED лент подсветки. Проблема
автор Viktor2312 Вс Сен 20 2020, 18:07

» Жалобы/пожелания по работе форума
автор Viktor2312 Вс Сен 20 2020, 11:54

» Стабилизированный преобразователь напряжения.
автор Viktor2312 Пн Сен 14 2020, 23:12

» Простые доработки ZX-48К: RAM-монитор в ПЗУ и экран на E000
автор barsik Сб Сен 12 2020, 23:47

» Применение КР580 ВИ53 для генерации музыки
автор Viktor2312 Сб Сен 12 2020, 20:09

» STM32. Статьи, заметки, очерки, разное...
автор Viktor2312 Чт Сен 03 2020, 12:09

» STM32G0. Документация (Datasheet, разное).
автор Viktor2312 Чт Сен 03 2020, 11:52

» Новинки. Книги. Часть 1.
автор Viktor2312 Ср Сен 02 2020, 14:21

» STM32F4. Статьи, заметки, очерки, разное...
автор Viktor2312 Вт Сен 01 2020, 14:44

» Ленинград-0,-1,-2,-3. Статьи, заметки, очерки, разное...
автор barsik Вс Авг 30 2020, 08:32

» Ленинград-0
автор barsik Вс Авг 30 2020, 08:01

» STM32F4. Изучение.
автор Viktor2312 Пт Авг 28 2020, 00:07

» Орион-128: Полезные доработки ПЭВМ
автор barsik Чт Авг 27 2020, 11:21

» STM32H7. Статьи, заметки, очерки, разное...
автор Viktor2312 Вт Авг 25 2020, 10:43

» Радио-86РК: По страницам журнала "Радио" и не только...
автор barsik Вт Авг 25 2020, 01:28

» STM32L0. Документация (Datasheet, разное).
автор Viktor2312 Вс Авг 23 2020, 10:10

» STM32L0. Отладочные платы.
автор Viktor2312 Сб Авг 22 2020, 20:22

» STM32L0. Программное обеспечение, разное...
автор Viktor2312 Сб Авг 22 2020, 17:24

» STM32L0. Статьи, заметки, очерки, разное...
автор Viktor2312 Чт Авг 20 2020, 19:37

» STM32H7. Документация (Datasheet, разное).
автор Admin Чт Авг 20 2020, 13:33

» STM32F7. Документация (Datasheet, разное).
автор Admin Чт Авг 20 2020, 13:32

Самые активные пользователи за месяц
Viktor2312
Сбор информации о ZX80/81 Vote_l10Сбор информации о ZX80/81 Voting10Сбор информации о ZX80/81 Vote_r10 
barsik
Сбор информации о ZX80/81 Vote_l10Сбор информации о ZX80/81 Voting10Сбор информации о ZX80/81 Vote_r10 
Atari1974
Сбор информации о ZX80/81 Vote_l10Сбор информации о ZX80/81 Voting10Сбор информации о ZX80/81 Vote_r10 

Поиск
 
 

Результаты :
 


Rechercher Расширенный поиск


Сбор информации о ZX80/81

Перейти вниз

Сбор информации о ZX80/81 Empty Сбор информации о ZX80/81

Сообщение  barsik в Пт Дек 13 2019, 15:14

1
ZX80 интересен и с исторической точки зрения и с инженерной. А если в другой 8-ми разрядке есть Z80 с NMI прерываниями, то возникает интерес к нему и как к источнику программ. У меня есть все три интереса к этой машинке. Потому решил познакомиться с ним поближе, благо информация о ZX80 в Интернете есть и даже есть форумы с 40 тысячами пользователей посвящённые этому крошечному компьютерному уродцу. Кстати, с инженерной точки зрения меня интересует почему в ZX80 при нажатии клавиш экран мигает, а в Галаксии и BCS-3, в которых видео также выводит сам процессор, экран не мигает. Хотя тот же принцип видео (чуть более грамотный) там также тормозит при прогоне программ.

В общем хотелось бы разобраться с архитектурой и программированием ZX80, благо исходники его ROM-BIOS с комментариями и также исходники некоторых игр опубликованы, да и другую информацию на эту тему всё ещё можно найти в Интернете. Полезно накапливать в этой теме сведения о этой самой дешёвой машинке и, даже возможно, программы, что можно использовать.

А также м.быть и про другие подобные простые бытовые машины. Как пишут в Википедии, два инженера разработчика ZX81 и ZX-Spectrum ушли из фирмы К.Синклера и основали свою фирму, чтобы выпускать более прогрессивный компьютер Upiter ACE, который был такой же дешёвый, как и ZX81, т.к использовал ту же идею визуализации экрана процессором (но резидентно имел аж 3 кб ОЗУ, из них 1 кб для экрана и ещё 1 кб для тайлов, что давало удобную псевдо-графику, и мог использовать модули доп.памяти от ZX81).

Но в Upiter ACE сдуру вместо Бейсика в ПЗУ прошили интерпретатор Форта, который так просто, как бейсик не изучишь (для этого надо сначала вывернуть свой мозг наизнанку и начать мыслить по польски). В итоге, хотя программа на Форте работает в 10 раз быстрее, чем программа на бейсике, удалось продать всего ~5000 машин. У английских школьников и учителей просто не хватило ума на Форт (а для профессиональных программистов оказался удобнее ассемблер). Это доказало, что был востребован простой и примитивный ЯВУ, который можно изучить за один вечер. Тот же принцип действия использовал американский клон MicroACE, но до Форта они не додумались.

Сбор информации о ZX80/81 Dream-team-klein.1576309852

ZX80 с инженерной точки зрения интереснее, чем ZX81, т.к в последнем стоит заказная ULA и там всего 4 микросхемы, отчего бессмысленно тупо вглядываться в его схему, пытаясь из неё понять идеи и инженерные решения. А вот ZX80 сделан на 21-ой микросхеме, причём все кроме Z80 и ОЗУ широко распространённые и дешёвые TTL. Кстати, на этой же схеме можно получить и ZX81, т.к пишут, что архитектурно он отличается от ZX80 только заменой ПЗУ 4К на вдвое большее в 8К и введением прерываний NMI.

Причём, что любопытно, это введение NMI каким-то образом даёт так называемый медленный режим, при котором скорость прогона тормозная (20% от клока), зато экран не мигает по нажатию клавиш. Вроде бы NMI нужны для синхронизации по строкам. Вообще разобраться в принципе видео в ZX80/81 не просто. Хотя, если прочитать все иностранные форумы про ZX80 и очень долго читать технические статьи на эту тему, не исключено, что удастся что-то понять.

В Википедии тексты о подобных ретро-машинках пишут их фанаты и они сознательно скрывают важные технические подробности. Например, пишут, что такт Z80 3.25 МГЦ, а вот то, что реальная скорость прогона программы при отображении видео резко падает, умалчивают, чтобы читатели не узнали правду. Ничуть не умаляет гениальность инженера (Jim Westwood), который разработал схему и изобрёл принцип работы ZX80, если читатели наряду с достоинствами узнают и про недостатки компьютера. Странно, что US-патент на идиотический дизайн корпуса взят, а на главную техническую идею на которой основан ZX80 патент не взят. Иногда встречаются гнусные намёки, что идея где-то заимствована.

Кстати, идея на которой работает ZX80 заключается в том, что в формировании экранного адреса участвуют регистры I и R, а чтобы регистр R менялся равномерно (за 4 маш.такта), процессор во время видео-вывода должен прогонять NOP-ы. И кстати, изначально ZX80 не планировался как графический и для игр (т.к резидентный драйвер может использовать только фонт из ПЗУ), и лишь пару лет спустя грамотными программистами была открыта возможность иметь режим High Resolution с помощью своего загружаемого в дополнительное ОЗУ 16 кб драйвера вывода. Похоже, что сам разработчик ZX80 не знал, что его творение после простейшей доработки может выводить не только текст, но и графику.

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

Расчёт сэра Клайва оправдался, низкая цена сработала, сбыт ZX80 был хорошим и даже по всему миру. Для большинства людей ZX80 стал первым шагом в мир компьютеров, и лишь некоторых неудобная клавиатура, мигающий экран и крошечный объём ОЗУ разочаровали.  Журнал "PC World" писал: 'With an unusable keyboard and a quirky BASIC, this machine discouraged millions of people from ever buying another computer.' Но своих денег ZX80/81 явно стоил, иначе его не купило бы столько людей.

Но самое интересное, что и для ZX80 с ОЗУ всего в 1 кб, из которых большую часть отжирал экран, были написаны игры (ради экономии ОЗУ они занимали лишь четверть экрана). А уж когда в ZX80 добавили ещё 2 кб ОЗУ вот такой маленькой платкой http://qrp.gr/zx80/DSC05636.jpg (там 4 штуки 541РУ2 и одна 555ИД7), ZX80/81 стал не только доступным для всех слоёв населения, но уже и смог реально дать пользователям игры и возможность изучать бейсик. И потому ZX80/81 смог победить конкурентов (вместе с пиратскими клонами он имел тираж в ~2 миллиона, а конкуренты с более качественными машинами разорились продав всего ~5000 машин).

С точки зрения пользователя это по сути рекламный обман выпускать машину с ОЗУ в 1 кб, зная, что при выводе на все 24 экранные строки, ОЗУ для пользователя остаётся всего 384 байта. Отнимем часть байтов на стек и раб.ячейки ROM-BIOS и для программы на бейсике или ассемблере остаётся ~300 байт. Какую программу, а тем более игру, можно уместить в 300 байт?

Любому очевидно, что на плате сразу надо было ставить больше ОЗУ, ну хотя бы 2 кб (что так трудно было предусмотреть хотя бы посадочные места для запайки ещё двух 2114 второго килобайта, как сделали в TIMEX 1000). Но сэр Клайв Синклер коварно предпочёл втюхать пользователям бытовую машинку со смехотворно крохотным ОЗУ, чтобы затем заставить их всех покупать платы расширения.

Никому из американских производителей промышленных бытовых ЭВМ (причём на несколько лет раньше, когда ОЗУ было намного дороже) не пришло в голову выпустить для народа ЭВМ с ОЗУ в 300 байт (они ставили минимум 4 кб) и только сэр Клайв умудрился это сделать: http://ipic.su/img/img7/fs/ComparativeTable.1576101760.png. Потому он и стал миллионером и получил от английской королевы рыцарский титул (к которому, естественно, как и положено, прилагались земельные наделы, поместья и зАмки).

Пока у меня есть глупое предположение, что экран в ZX80 мигает как раз потому, что ОЗУ в нём с гулькин нос. ROM-BIOS стремится поддерживать затраты на экран как можно ниже. Для этого после последнего печатаемого символа строки ставится код $76, отчего завершающие строку пробелы не отображаются (это не требуется, т.к автоматом остаётся чернота экрана) и не занимают место в ОЗУ. А т.к такие усечённые строки в ОЗУ хранятся впритык, на экран тратится минимум памяти. Потому вводя новый символ в строку (или удаляя его), процессор не только обслуживает его как оператор бейсика, но и делает перепаковку экрана, т.е раздвигает/сдвигает в нужном месте на один байт экранное ОЗУ. Это занимает время (и таблица начал строк должна корректироваться), отчего экран кратковременно гасят, чтобы на экране не возникал мусор. А на машине, где ОЗУ побольше и нет нужды запаковывать экран, нет необходимости в гашении экрана по нажатию клавиши.

Хотя это лишь моё предположение. Просто я не могу придумать зачем ещё может понадобиться гасить экран по нажатию клавиши. Постепенно (возможно годы спустя), прочитав иностранные Вики, технические статьи для программистов, форумы, изучив схему ZX80 и исходники ROM-BIOS, если удастся узнать точную причину мигания экрана, то смогу сообщить в этой теме. Если вы думаете, что это просто, для начала попробуйте понять алгоритм работы ZX81, о чём лучше всего написано вот тут: https://k1.spdns.de/Vintage/Sinclair/80/Sinclair%20ZX80/Tech%20specs/Wilf%20Rigter's%20ZX81%20Video%20Display%20Info.htm.

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

Изначально ZX80 планировался на использование только текста и Low Resolution псевдографики 64*48. Её поддерживает бейсик (операторами PLOT/UNPLOT), который для этого использует стандартный резидентный драйвер вывода символов из ПЗУ и 16 символов псевдографики (с матрицей 2*2 пикселя на одно знакоместо с размерами 8*8 точек):

Сбор информации о ZX80/81 T012

Сбор информации о ZX80/81 Low_Res_picture.1576238466

Но через несколько лет кто-то из пользователей обнаружил, что если в разъём ZX80 воткнуть платку расширения на 16 кб дополнительного ОЗУ и припаять в схему пару диодов и резистор, то используя загруженный в ОЗУ специальный драйвер, можно тем же самым базовым железом ZX80 выводить High Resolution тайловую псевдо-графику. Платка доп.ОЗУ 16К оригинально была на DRAM 4116 http://www.myprius.co.za/64k_ram_pack_zx81/100_5927.JPG и в начале была доступна лишь состоятельному человеку (в 1981 году стоила $100). Сейчас кстати, любители ZX80 делают её  проще, используя DIP-статику: http://www.myprius.co.za/ZX80%20RAM%20Pack/100_5955.JPG).

High Resolution Graphic Mode вопреки названию на самом деле не графический режим, а псевдо графический. В нём лишь используется фонт не из резидентного ПЗУ, а загруженный в ОЗУ. Это позволяет загружать произвольный фонт и рисовать им фигурки, которые неотличимы от полноценной графики. Это почти эквивалентно РК86 с загрузкой фонтов (только РК86 вдвое быстрее), причём и число этих фонтов в ZX80 также, как в РК86, ограничено в 128. Таким образом, поставив процессор Z80 в РК86 доработанный до загрузки фонтов и добавив в схему прерывания можно адаптировать игры от ZX80 и для РК86. Хотя красивых игр в такой графике не много, т.к этот режим открыли и стали использовать слишком поздно. Лишь в новодельные времена любители пишут игры (не только на ассемблере, но и даже на Си) уже чаще именно для режима Hi-Res.

Сбор информации о ZX80/81 Hi_Res_picture_1.1576237801

Сбор информации о ZX80/81 Hi_Res_picture_2.1576238649

А ещё позднее, уже к середине 80-тых, китайцы сумели добавить к ZX81 платку цветного адаптера. Так что, если бы инженеры работающие у К.Синклера подумали о усовершенствованиях и сразу бы сообразили как простейшим способом добавить графику и цвет, то изобретать дорогостоящий ZX-Spectrum 16К вообще бы не потребовалось. Ведь имея цвет и быструю тайловую графику, ZX81 по сути превращался в Dendy. А история игровых приставок доказала, что для игр на медленной 8-ми разрядке быстрая тайловая псевдо-графика лучше, чем медленная хотя и полноценная графика.
barsik
barsik
Мастер++

Сообщения : 701
Дата регистрации : 2016-11-10
Откуда : С-Петербург

Вернуться к началу Перейти вниз

Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения