Первые "инновации" Apple

В далёком 1975 году никому тогда неизвестный Стив Возняк посетил Клуб Самодельных Компьютеров и так впечатлился, что засел за разработку собственного 8–битного ПК. Когда он был готов в 1976 году его друг Стив Джобс убедил его начать продавать изделие и в том же году новоиспечённая фирма Apple начала продавать свой первый продукт — персональный компьютер Apple I по цене $666,66.



Компьютер продавался как голая системная плата, что было первой своеобразной «инновацией» в те годы, т.к. чаще всего ПК продавались как набор для самостоятельной сборки и спайки — целевая аудитория как правило ограничивалась радиолюбителями/электронщиками с прямыми руками. В связи с этим даже корпуса всех сохранившихся экземпляров выглядят по разному и весьма «кастомно» (см. рис).
Из родного мануала: s3data.computerhistory.org/brochures/apple.applei.1976.102646518.pdf вскрываются такие любопытные детали, что хотя и к компьютеру надо было подключать (помимо блока питания и монитора) стороннюю ASCII-клавиатуру и он был к ней в принципе готов, но его прошитая в ПЗУ программа «монитор» (считай аналог оси в 256 байтах) не воспринимала за команды-символы маленькие буквы, поэтому предлагалось даже впаять (самостоятельно) в блок ввода от клавиатуры схему-конвертер малых букв в большие — если на самой клаве не было Caps-Lock-а.

Еще одной забавной деталькой является то, что комп после подключения питания даже не ребутился автоматически — на экране застывал мусор и ничего не реагировало на клавиатуру до ручного нажатия на кнопку RESET.

Однажды я наткнулся на информацию о том, что Apple I был довольно скуден на графические возможности. То, что у него был только один видеорежим позволяющий выводить только текст из заранее определенного набора символов не было чем то необычным для тех времён. Но смутило другое — утверждалось, что текст мог только печататься слева–направо сверху–вниз как на печатной машинке, а скорость вывода символов при этом не превышала ~60 символов в секунду, что было недалеко от возможностей принтеров.
Поискав в интернете я нашёл обстоятельный разбор (англ.) видеосистемы этого компьютера и она… немного удивила.

В отличие от мейнстрима последующих лет (включая следующий их компьютер — Apple II), когда содержимое экрана видеочипа прямо отображалось в память компьютера и было доступно для изменения в любом месте и в любой момент времени у Apple I видеосистема была «чёрной коробочкой» в которую центральный процессор мог только послать очередной символ для вывода на экран.
Видеосистема сама хранила видеопамять с символами экрана — но это была не нормальная RAM (random access memory — память с произвольным доступом), а шесть 1024–битных регистра сдвига. То есть такие хранилища бит в которые с одного «конца» можно было «запихать» бит для хранения и при этом с другого конца «вываливался» бит который туда «запихали» 1024 итерации назад. Шесть таких регистров сдвига нужно было — во первых — потому что символы в видеобуфере для экономии были 6–битными. Поэтому, например, сразу и заглавные и строчные буквы на экран вывести было нельзя — таблица символов была ограничена 64 знаками — именно поэтому и возникала проблема с их неотличимостью и была полезна перепайка клавиатуры.
На экране было видно 24 строки по 40 символов в каждой, что даёт нам 960 символов на экране. Поэтому нужны были именно 1024–битные регистры сдвига, чтобы в их длину влез весь видеобуфер (получается, что с небольшим запасом).
Эти самые регистры сдвига далее зацикливались сами на себя, то есть бесконечно вращались в кольце — для видеосистемы это упрощало несколько «сканирующее» поведение нужное ей по архитектуре — символы отрисовываются по ходу луча кинескопа тоже слева–направо сверху–вниз линейным проходом. Ну и плюс — дешевизна. Однако писать в такую память произвольным образом нельзя — запись возможна только в ту группу бит которая в текущий момент «проскакивает» в разрезе кольца — можно просто в какой то момент подать на следующий круг не те биты что пришли из конца, а те что мы хотим на их место записать, таким образом переписав их. Именно так и действовал видеоконтроллер Apple I — он сравнивал позицию курсора с тем что сейчас проходит через срез кольца и при совмещении курсора со срезом и выдавал процессору сигнал «можно производить запись» и если процессор писал в видеопорт символ — вклинивал его в кольцо для хранения в видеопамяти переписав старый.
То есть логика вывода символа на экран у процессора была следующей: подождать, пока видеосистема отчитается «можно записывать» и сразу же после этого записать в видеопорт символ к отображению.
Проблема только была в том, что из-за таймингов получилось так, что сделав эту запись процессору далее приходилось ждать полный цикл кольца чтобы подобраться снова к новой позиции курсора и снова произвести запись в следующий символ. Именно этим и объясняется максимальная скорость вывода символов на экран в примерно 60 символов в секунду, так как именно такова была частота вывода на экран картинки видеосигнала NTSC и, соответственно, скорость прокрутки сего регистросдвигового кольца видеопамяти Apple I. Еще всё усложнялось тем, что одну строку символов из кольца нужно было просканировать несколько раз для генерации нескольких строк пикселей одной строки текста, поэтому в процессе информация из большого кольца еще сгружалась в малое, где проворачивалась еще несколько раз.
Так же отдельными схемами в видеосистеме была реализована реакция на символ #13 «возврат каретки» — «допечатыванием» нужного числа пробелов, чтобы курсор появился на начале следующей строки, но не существовало никакого способа вернуть курсор на экране назад, не то что поставить его в произвольную позицию. Невозможно было даже очистить экран.
Таким образом на Apple I невозможно было реализовать интерактивные видеоигры наподобие «змейки» или «pacman» — типичная игра на этой персоналке — например шашки — просто раз за разом распечатывала на экране новую позицию игры и просила ввести с клавиатуры новый ход.

Получается, что первый компьютер Apple, фирмы которая давно славится своей инновационностью и продвижением новых техник и технологий, попросту имитировал ленту принтера (или телетайпа как было принято на больших ЭВМ предыдущих годов) на телевизоре!

Продав всего около 200 экземпляров Apple берет реактивный старт и следующая модель их компьютера — Apple II уже будет обладать полноценным видеочипом мало того, что с графическим видеорежимом, но еще и цветным изображением. Apple I же сейчас является настолько большим раритетом, что продаётся на аукционах за сотни тысяч долларов.

5 комментариев

avatar
Насколько я помню, идея с последовательными сдвиговыми регистрами пришла с первых компьютерных видеотерминалов, у них изначально был такой дизайн, и потом уже перешли на нормальное ОЗУ (где и раскрылась сущность названия RAM — random access memory).
  • Shiru
  • +2
avatar
Ну да — опять же первые видеотерминалы просто копировали поведение принтеров «без траты бумаги». Забавная инерция мышления как раз при переходе на новые технологии. Уж большие ЭВМ могли себе позволить шкаф со сложным видеоконтроллером.
avatar
Дешевизна решает, память тогда была очень дорогой. Поэтому, я думаю в качестве регистров сдвига использовались дешёвые динамические регистры сдвига.
Кстати ОЗУ в советских программируемых калькуляторах сделано тоже на динамических регистрах сдвига.
  • Error
  • +1
avatar
Ну, кто-кто, а Apple дешевыми не были и до сих пор ими не являются. :) Это такая же давняя традиция.
Тут, имхо, просто попытка что-то сделать собственными руками еще до всяких коммерциализаций.
А вот вышедший уже через год Apple II обладал уже не только графическим, но и сразу цветным дисплеем.
avatar
Не было никакого Apple во время разработки первого эппла, это чисто проект Воза.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.