23 апреля 1982 года в продажу поступил разработанный английской компанией Sinclair компьютер ZX Spectrum, ставший последователем модели ZX81. На прилавках магазинов он появился в версиях с 16 и 48 Кбайт оперативной памяти. Корпус разработал промышленный дизайнер Рик Дикинсон (Rick Dickinson), ответственный и за неудобную резиновую клавиатуру оригинального компьютера.
На накопителе (ROM) ZX Spectrum был записан интерпретатор языка BASIC, разработанный Стивом Викерсом (Steve Vickers) по контракту с компанией Nine Tiles. Компьютер отличался относительно невысокой ценой: 125 фунтов за версию с памятью 16 Кбайт и 175 фунтов за вариант с 48 Кбайт. Для первой модели отдельно продавался дополнительный модуль, добавляющий 32 Кбайт оперативной памяти. Монитором для ZX Spectrum служил домашний телевизор, а накопителем выступал кассетный магнитофон. Процессором был 8-битный чип Zilog Z80 — его выпускала американская компания, основанная тремя выходцами из Intel.
Графика выводилась в разрешении 256 × 192 пикселя — она разбивалась на знакоместа (блоки) размеров 8 × 8 пикселей каждый. Изображение в каждом знакоместе кодировалось 1 байтом информации: 3 бита на фон, 3 бита на основной цвет, 1 бит на яркость и 1 бит на эффект мигания. Всего было доступно 8 цветов, но если учесть атрибут яркости, то 15, потому что чёрный в обоих случаях выводился одинаково. В статическом формате такая графика работала стабильно, а в динамике иногда возникали артефакты, получившие название конфликта атрибутов или «клэшинга».
Оригинальная версия ZX Spectrum была в продаже относительно недолго — уже в 1985 году она была снята с производства, а заменила её функционально идентичная модель ZX Spectrum+ в новом корпусе и с более удобной клавиатурой. В 1986 году Sinclair за £5 млн передала все права на проект британской компании Amstrad, которая расширила линейку, обновив клавиатуру, а также предложив модели со встроенным магнитофоном и дисководом.
К сожалению, двух ключевых фигур, стоявших у истоков ZX Spectrum, с нами уже нет: дизайнер Рик Дикинсон ушёл 24 апреля 2018 года, а сэра Клайва Синклера (Clive Sinclair) не стало 16 сентября 2021 года.
Комментарии
мля, а я на нем теннис написал.. правда для одного игрока.. (вторым выступала стенка).. был неимоверно город собой.. ...
на бейсике?
все нормальные программы под спектрум выглядели как rand usr(адрес) )))))
спектрум наш! (c)
https://www.youtube.com/watch?v=mgXRXDfQ0xw
а я - драйвер принтера ESC/P. т.е. можно было печатать на обычный матричных Эпсонах м их клонах.
причём он уложился в 255 байт, т.е. его можно было грузить на место буфера одноигольного родного принтера,
так что все игры загружались.
возился долго, никак не хотел в 256 байт укладываться, то 258 то 259 получалось. наконец, вычитал про какую-то из CB/ED команд и смог в 255 байт.
В те времена еще непреложно работало правило для программ на ассемблере:
размер любого (полезного) кода всегда можно уменьшить на 1 слово.
Помните великое сказание про «Один байт»?
дык!
ФИДО застал (причем уже в зрелом возрасте) :)
Аналогично.
Ну и ассемблерил в то время в полный рост, правда, для других процессоров.
эх...
Ниччо!
Просто помним!
если вспоминать - материала на книгу хватит
и тема Spectrum'а в ней займет пару больших глав
МИЭТ (Зеленоград) просто обязывал выжать из этой темы максимум
А я вот как-то миновал.
С ЕСок — сразу на Амстрады. Ну, Академия, ВЦ там был зачотнейше оборудован.
а я встроенные системы проектировал (железо)
так что, и Zilog и 68K (вплоть до 68040) и MIPS и наши секционированные процессоры - все в ход шло
вот только DEC ненавидел и всячески избегал
Я драйвера для всяко-разно глубоководного. ;-)
DEC один стоял точно, но подробностей не помню совсем.
у меня асм был хобби.
Резиденты, полиморфы. Ой, не так, разные прикладные программы, критичные к скорости исполнения и объёму доступного пространства. Но это уже на 8086/286/386Бгггг. :-)
Во-во, критичные по скорости. Я наивно думал что и обычным Си победю. Ага, щазз.
Си - штука мощная и удобная конечно. Но, да... бывают нерешаемые им задачи
Возможно, на современном железе и прокатило бы.
А тогда — нэт…
За команду LDIR надо уже памятник отлить в граните. После ада на КР580 я думал попал в рай. И полный набор сдиговых команд во втором наборе команд.
Вот только чехарда с альтернативными регистрами бесила, таки да.
Для 68К последний код правил в 2018 году. На нем был заграничный контроллер доступа. Я как увидел сие чудо со съемной 40ногой еепром, жадно потер ручонки и с блеском в глазах начал чудить. Почти на 10 лет.
Но майн гросс аллес либен - MSX2. Мечта мечт. 128К, AY, видео до 512.
ээээ
а AMIGA (by Commodore) говорит о чем-нибудь?
------
блоковые команды - да, гуд, когда нет DMA
Да, говорит о том, чего у меня не было никогда.
Только в 200х я прикоснулся к этому прекрасному, когда увлекся SID. Ито в виде программных эму
Видеоподсистема и вообще железо AMIGA (600/1200/3000/4000) предвосхитили все, что есть графического сегодня
а AmigaOS обогнала MacOS лет на 10
не говоря уж о Windows
а докуметации такой я до сих пор не встречал
~10кг книг
Возможности несомненно. Но важен балланс возможностей-потребностей-цены. Инженерно это был прорыв на 10-15 лет вперед. Основа многим привычным сейчас вещам. Это реально эпоха до.. и после. Но реальность такова (и эта статья тому подтверждение) что сабж из заголовка всех побрил со своими 6912 (? угадал, или уже забыл?) видео.
Кстати, а Вы, для интереса, не пытались разобраться со структурой текстовых сообщений в игре Elite? Как вы после этого смотрите на современных кодеров-ху@#$ров? Презрение к этим жалким бездельникам не зашкаливает? 48К, 3.5мгц.
У нас (железячников с навыками работы на регистровом уровне) презрение к любым погромистам 😊, а к современным - особенно 😊
Хотя "бывают дни", когда жалеешь о своем недостаточном опыте в кодерстве и непрограммистском складе ума.
Игрушки я не ломал, мне больше интересны были системные вещи типа загрузчиков, инициализации периферии, теневых ресурсов и вообще недокументированной регистровой структуры или архитектуры.
На Ямахе MSX2 был не только суперский звук и 256К-цветное видео, но и даже видеовход с оцифровкой, аудиовход с оцифровкой, а также локальная сеть по коаксиалу! Как-то попался мне в руки увесистый томик с документацией по MSX BASIC, где был раздел про сетевые команды. Там можно было не только отправлять адресные и широковещательные текстовые сообщения, но и даже запускать дистанционно код на удалённых машинах)) Прикалывался так над одноклассниками, отправляя им всякие приколы на их рабочие места. Супер-крутой был компьютер для своего времени!
Йессс!!!
это вряд ли!
тем более перешибить mov -(7), -(7) вряд ли кому удастся ;-)
это вы про стек не слышали, наверное
какой ещё стек?
эта команда на той архитектуре функционально ни чем не отличалась от помещения в стек:
mov DATA, -(6)
на той - на какой?
PDP/LSI-11
Ваш К.О.
кгхм...
Да уж. Единственная система команд, в которой писать в машинных кодах было почти так же удобно как на ассемблере. В 8-ичной системе счисления )
Это вам так кажется, потому что вы IBM 1401 не застали. Я, правда, тоже не застал, но вот тут очень подробно всё описано.
A — опкод сложения
S — опкод вычитания
B — опкод команды перехода
Аргументы идут как число, причём десятичное.
Ну и так далее.
А и могло ли быть иначе, во времена, когда конфигурация компьютера, куда поместится ассемблер, стоила не как крыло от самолёта, а как самолёт целиком?
господа, те, кто активно писал на ассемблере для ранних 8-битников ПОМНИЛ НАИЗУСТЬ подавляющее число кодов команд
для 8080 - практически все
для Z80 - некоторое достаточное для ориентации в коде подмножество
Там, на самом деле, не смертельно много опкодов было и они были достаточно разумно размещены. Четверть всей таблицы вообще один mov.
Но в любом случае с этим сложнее работать, чем с алфавитными опкодами и десятичными цифрами прямо в командах.
это уже мнемокод
поскольку машинная логика - двоичная
Эх, молодёжь. Первые компы десятичными были. И IBM 1401 тоже.
А как иначе с механических табуляторов на них программы переносить? 1959й год, всё-таки.
Ассеблер, как уже говорилось, не на всякой машине запустишь, да и доступ к ней ограничен.
Так что всё в машинных кодах, в основном. Разумеется если прямо во время разработки её планировалось в машинных кодах программировать, то оные коды под это заточены были.
В том-то и дело, что нет. Двоично-десятичная машина, в каждой шестибитной ячейке либо буква, либо цифра, но вычисления и адреса десятичные. Команда печати на принтер (и чтения перфокарты, разумеется) реализована аппаратно, а другим командам подобраны тоже читабельные (ну, плюс-минус) мнемоники.
Мы о разном
Я о логике (бинарной)
А вы о системе счисления (ее аппаратной поддержке)
В вашем случае именно мнемоника (естественно образованная и подобранная из алфавитно-цифрового кода)
Операционный блок (АЛУ) основан на двоичной логике и оснащен кодеками (шифратор/дешифратор) для принятого соглашения по представлению команд/адресов/данных
То же относится и к декодеру и счетчику команд, к адресным генераторам и т.п.
Стоп. Чем мнемоника записанная в памяти и непосредственно используемая АЛУ отличается от опкода?
Нет. Не основан и не оснащён. Столько электроники в 50е годы никто не дал бы транжирить. И без того 10 тысяч транзисторов здоровый шкаф занимают.
Если вы про то, что элементы компьютера были только в двух состояниях — так это да, лампы с десятью выводами это 1940е, не 1950е. Но причём тут мнемоника и опкод?
А вот если вы про то, что числа были двоичными… так вот не были. В ALU числа оставались десятичными, каждая цифра представлялась семью битами (при этом только два могли быть выставлены: один из первых пяти и один из последних двух) — и вот над этим вот проводились все вычисления.
Это позволяло обнаруживать сбои в вычислениях и останавливать в этих случаях всю шарманку. Очень полезное качество во времена до появления микросхем. Вот тут подробности есть.
Всё десятичное! Вообще всё! Адреса памяти, целые числа, числа с плавающей десятичной точкой (хотя это только на старших моделях, на младших только фиксированная). Вообще нигде ничего двоичного нет (если не считать двух битов в представлении десятичной цифры в ALU).
А декодера, как такогого, нету: ячейка памяти шестибитная, оттуда считывается одна шестибитная буква и она и выбирает что будет делать ALU.
Прямо и непосредственно выбирает. А дальше идут аргументы, адреса памяти, просто числа (кто сказал регистры? что за слово такое матерное?). Зато ALU умеет числа обрабатывать по одной циферьке но в цикле. Так что можно хоть 100-разрядные числа обрабатывать.
Именно оттуда всё это в Кобол пролезно (собственно одна из причин не позвояющая всё так просто переписать с Кобола на какую-нибудь Java это именно эти самые числа с плавающей и фиксированной десятичной точкой… когда у тебя всё в процессоре есть, то это одно, а когда всё нужно эмулировать… медленно получается).
В PDP-11 надо было значительно меньше запоминать, чем в интеловских.
8 равноправных с точки зрения команд регистров (только R7=PC, некоторые режимы адресации запрещены). Т.е. никакого выделенного аккумулятора, SP, никаких постоянных пересылок. Плюс никаких портов ввода-вывода - все в общем адресном пространстве, обычными командами.
Все двухоперандные команды типовые, если писать в 8-ной системе счисления: <код команды><src mode><src><dst mode><dst>, например: 012503 - считать число по адресу из R5, положить его в R3, R5 увеличить (01 - MOVE, 2 - косвенная адресация с инкрементом, 0 - прямая адресация регистра).
Операции со стеком - простой MOVE с правильной адресацией. 010446 - PUSH R4 (косвенный MOVE с декрементом R6), 012604 - POP R4 (косвенный MOVE с инкрементом R6).
После 8080 и даже z80 - просто халява.
В DEC-овских машинах, действительно, структурированность и симметрия системы команд была очень высокой
Вот ровно такая же фигня и у нас была, пару байтов не хватало. Два дня втроём бились.
Ещё помню, как драйвер светового пера вручную набивали. Не помню уже, как белорусский радиолюбительский журнал назывался.
Респект. На корветах играл в сию игру.
Первона!
Клэйв Синклер ещё на жульничествах с радиоприёмниками руку нагрел хорошо!
у мну был самосбор "Новосибирск-Автоматика" на ПЛМках (556РТ1, 2)
Тоже. Но с контроллером НГДМ.
тащемта НГМД
у мну тоже потом был, забыл микруху, вг93 что ли. и два дисковода teac на 720кб
Я сам паял. Если находил на радиотолпе незнакомую спектрумовскую плату, брал сразу, потом детальки рассыпухой и кайф с паяльником на пару вечеров был обеспечен.
Страницы