Введение
Первоначальный Macintosh был относительно простым устройством, представляющим интерес сейчас именно благодаря своей простоте и тому, что он был первым компьютером, выпущенным Apple под названием Macintosh. Macintosh в максимальной степени использовал стандартные, серийно выпускаемые компоненты, достигая умеренной стоимости за счет сочетания сложных LSI-чипов, легко настраиваемой программируемой логики и серийно выпускаемых компонентов.
Общая архитектура
На Macintosh использовался Motorola 68000. Шина 68000 была напрямую подключена к другим программируемым компонентам компьютера: дискетному контроллеру IWM, Zilog 8530 SCC и MOS Technology 6522. Шина также соединяла 68000 со 128 или 512 КиБ основной памяти (DRAM), которая использовалась совместно процессором и мультимедийными схемами в режиме прямого доступа к памяти (DMA). Либо процессор, либо видео/звуковой движок могли получить доступ к памяти, но не одновременно, что приводило к потере производительности до 10%; схема DMA также выполняла необходимое обслуживание оперативной памяти, что иначе создавало бы дополнительную нагрузку, прием, ранее использовавшийся в Apple II. Точная информация о времени передавалась в 68000 посредством прерываний. 68000 предоставляет три входа прерываний, которые в Macintosh 128K/512K были подключены к 6522, 8530 и интерфейсу для разработчиков, в порядке возрастающего приоритета. Таким образом, ввод текста с клавиатуры (подключенной к 6522) не снижал производительность последовательной передачи данных (8530), при этом программа, управляющая последовательной шиной, могла быть отлажена программистом. Чтобы еще больше снизить стоимость производства по сравнению с предшественницей Lisa, Apple не включила MMU. В результате Macintosh не поддерживала защищенную память. Защищенная память была добавлена в компьютеры Macintosh только с выпуском операционной системы Mac OS X. По словам Энди Герцфельда, Macintosh, использованный для демонстрации 24 января 1984 года, был прототипом с 512 КБ оперативной памяти, хотя первая модель, поступившая в продажу, имела только 128 КБ нерасширяемой памяти. Этот прототип был использован для обеспечения достаточного объема оперативной памяти для запуска ресурсоемкой демонстрации, в которой было продемонстрировано программное обеспечение для синтеза речи, призванное произвести впечатление на публику.
Особенности
Вышеуказанные компоненты обеспечивали работу графического интерфейса Macintosh и сетевых функций, как описано ниже.
Мышь
Центральным элементом нового интерфейса было управление с помощью мыши. Мышь содержала только электромеханические компоненты: кнопку и два оптических энкодера. Кнопка была подключена к 6522. Четыре выхода энкодеров были подключены – два к 8530 и два к 6522. Оптические энкодеры определяли движение по принципу квадратурного кодирования. Каждый энкодер имел колесо с радиальными полосами, которые прерывали свет, проходящий между светодиодом и фотодиодом, детектирующим свет, генерируя электрические импульсы при движении мыши. И X, и Y энкодеры приводились в движение за счет трения о шарик мыши. На каждом энкодере использовались две пары излучателей и детекторов. Одного набора импульсов достаточно для определения скорости вращения без указания направления, а второй набор, синхронизированный, но с фазовым сдвигом в 90°, определял направление вращения. Таким образом, для X и Y использовались по две пары излучатель-детектор. Сигналы определения движения подключались к чипу 8530 через два неиспользуемых контакта, ранее предназначенных для устаревших модемов. Изначально эти контакты сигнализировали о подключении или отключении модема. Когда мышь перемещалась на определенное расстояние, сигнал подключения/отключения модема изменял свое состояние, и 8530 генерировал прерывание процессора. Операционная система затем считывала сигналы направления с 6522, чтобы различать движение влево и вправо, вверх и вниз, и перемещала курсор мыши.
Курсор и видео
Курсор мыши отрисовывался программным обеспечением на экране, как и все остальные объекты на экране. Для поддержки анимации в реальном времени схема синхронизации экрана PAL отправляла импульс на микросхему 6522 один раз за вертикальный проход. Это стало основой для системной службы, называемой VBL (вертикальный интервал развертки) менеджер. При перерисовке экрана курсор перемещался, и игры получали возможность обновить изображение. Иногда было сложно избежать гонки между игрой и растровым дисплеем. Мерцание могло возникать из-за того, что процессор записывал данные в изображение во время его передачи на ЭЛТ. Поэтому в Macintosh была предусмотрена возможность использования двух буферов изображения в памяти, чтобы один буфер можно было читать, а в другой – записывать. Выбор "страницы" осуществлялся с помощью универсального порта ввода/вывода, подключенного от 6522 к контроллеру видео DMA. Однако, поскольку два буфера занимали 42,75 КБ ценной оперативной памяти, эта функция не пользовалась популярностью. Контроллер графики DMA работал независимо и автономно. Пиксели, состоящие из одного бита, считывались группами по шестнадцать через 16-битную шину данных и выводились со скоростью чуть менее 16 МГц, что требовало почти миллион обращений в секунду. Каждое обращение занимало один цикл доступа к памяти из каждых двух доступных во время активной части развертки, что обеспечивало пропускную способность памяти для процессора около 2,56 МБ в секунду.
Клавиатура
6522 обеспечивал универсальную последовательную шину. Клавиатура содержала микропроцессор Intel 8021, который передавал пользовательский ввод в 6522 по стандартному телефонному патч-корду. Каждое новое нажатие клавиши вызывало прерывание процессора.
Звук
Звуковой движок, работающий на основе сэмплов, был интегрирован в видеосхему. Во время обратного хода луча растровой развертки с правой стороны экрана на левую, один байт данных направлялся в генератор ШИМ вместо данных для экрана. Это обеспечивало 8-битный монофонический звук, дискретизированный с частотой 22,25 кГц, соответствующей частоте обратного хода кадра. Выходы 6522 общего назначения могли отключать звук или устанавливать его громкость на один из 8 уровней аттенюации. В составе 6522 также был генератор прямоугольных импульсов. Одна из двух цепей таймера могла быть настроена на периодическое переключение выхода отключения звука. Это позволяло генерировать частоты выше 11 кГц. Данная система была несовместима с аппаратным обеспечением Lisa / Mac XL, которое, в остальном, могло запускать программное обеспечение Mac с использованием общедоступных модификаций программного обеспечения/прошивки. Запуск программ на Lisa, использующих звуковые функции Mac, приводил к серьезным проблемам с видео и сбоям в работе системы.
Сообщение
Zilog 8530 SCC работал на частоте около 3,7 МГц. На этой частоте каждый последовательный канал был вдвое медленнее, чем основная память. Протокол RS 422 был реализован, за исключением линии установления соединения, которая использовалась для поддержки мыши. Позже Apple перешла на 8-контактный разъем, который полностью исключил эту линию.
Хранение
Постоянным носителем информации для Macintosh был дисковод для дискет Sony. Этот дисковод заменил дисковод Shugart от Apple ]['s и дисковод FileWare/"Twiggy" объемом 871К, использовавшийся в оригинальной Lisa в качестве носителя информации, выбранного для оригинального Macintosh. Односторонняя 3,5-дюймовая дискета хранила 400 КБ, замедляя скорость вращения диска при использовании внешней области. Отдельный микроконтроллер, IWM (Integrated Woz Machine), был выделен для управления диском. Дисковод работал посредством опроса ввода-вывода, поэтому доступ не был непрерывным: загрузка и сохранение файлов были операциями, которые приостанавливали работу всей машины. В чипе-счетчике часов реального времени было предусмотрено двадцать байт памяти. Эти данные сохранялись с помощью щелочной батареи на 4,5 вольта и использовались для хранения пользовательских настроек.
Отмечание времени
Macintosh оснащался часами реального времени, отсчитывающими секунды, и таймером обратного отсчета с точностью, близкой к микросекунде. Первые были подключены к 6522 через последовательную шину по трем линиям общего назначения ввода-вывода. В выключенном состоянии машина функционировала подобно кварцевым часам. Второй таймер был реализован непосредственно в микросхеме 6522. Любой из них мог генерировать прерывания.