Навигация по сайту
- Игры / Образы
- Игры на русском языке
- Коды / Советы / Секреты
- Наши переводы
- Наши проекты
- Игры на русском языке (OnLine)
- Эмуляторы
- Обзоры игр
- Информация
- Статьи
- Интервью
- Мануалы / Инструкции
Случайная игра
Вступай!!!
Облако тегов
Показать все теги
IBM PCjr
Домашний компьютер IBM PCjr способен был удивить своими возможностями любого пользователя того времени.
Новые стандарты
IBM PCjr является персональным компьютером, который был представлен компанией IBM 1 ноября 1983 года и продавался вплоть до 1985 года. Он имел продвинутые функции по сравнению с другими PC-совместимыми компьютерами того времени, однако был недостаточно совместим с другими машинами семейства IBM PC. Первоначально PCjr был слишком дорогим, чтобы конкурировать с такими платформами как Apple II и Commodore 64, он плохо продавался, и по сей день считается одним из самых больших провалов в отрасли информационных технологий.
Почему же так произошло? Ведь в свое время PCjr был очень перспективной системой, которой еще до анонса прочили роль самой популярной модели для домашнего использования.
Слухи о «Peanut» (первоначальное рабочее название) появились еще в начале 1983 года, однако объявлен он был лишь в ноябре 1983 под названием «PCjr», номер модели 4860. Были доступны две модификации:
• Модель 4860-004 с процессором Intel 8088 и 64 Кб оперативной памяти (669$).
• Модель 4860-067 с процессором Intel 8088, 128 Кб оперативной памяти и 360 Кб дисководом 5,25" (1269$).
Отрывок из оригинального письма-анонса 1ВМ:«Сегодня IBM объявляет о выпуске IBM PCjr начальной (модель 4) и расширенной (модель 67) модификаций. Система IBM PCjr - компактная и недорогая, она предназначена для домашнего использования и в образовательной сфере для персональных приложений, обучения и развлечений».
Также был объявлен цветной монитор для PCjr: 14-дюймовый RGB дисплей, имеющий шаг точек матрицы 0,43 мм и частоту обновления 60 Гц. Номер модели монитора - 4863, в отличие от других компьютерных мониторов того времени он имел динамик с регулятором громкости. Аудио и видео выводились из системного блока с помощью одного кабеля.
Опции, доступные для приобретения на момент запуска системы PCjr в продажу:
• Дисковод (8600005).
• 64 Кб памяти (как для нужд основной системы, так и видеоподсистемы) (8600007).
• Принтер для параллельного порта (8600009).
• Джойстик (8600010).
• Шнур клавиатуры (8600012).
• Беспроводная клавиатура (8600013).
• Переходник-адаптер для подключения телевизора (8600020).
• Кассетный кабель-адаптер (8600022).
• Переносная сумка (8600023).
• Кабель для последовательных устройств (8600026).
Выпуск PCjr стал первой попыткой компании IBM выйти на рынок домашних компьютеров. Поставки нового оборудования начались в марте 1984 года.
Какие же компьютеры имелись в продаже на момент анонса новинки от IBM? В 1983 году системы Apple II были очень популярны на рынке для домашнего использования и в образовательной сфере. Commodore 64 -только в сегменте домашнего рынка. Timex Sinclair и ZX81 (по существу представляли из себя одно и то же) продавались очень плохо и занимали маленькую нишу на рынке. IBM PC и IBM XT были ориентированы исключительно на бизнес-сектор IT индустрии. Другие машины (ранние IBM PC-совместимые системы, Apple Lisa, Coleco Adam, некоторые системы Atari и т. д.) были доступны в продаже, но не обладали такой популярностью, как Apple II, Commodore 64 и системы от IBM. Macintosh в то время лишь мерцал в отдалении, а компания Microsoft еще недостаточно развилась.
С точки зрения покупателя компьютеры Apple были очень хорошим выбором, но стоили довольно дорого. Они имели программное обеспечение для бизнеса, отличную аппаратную поддержку, и в целом были повсеместно распространены. Commodore 64 был едва ли приемлемым вариантом для покупки, так как почти не имел возможности для расширения, а его начинка лучше всего подходила только для игр. Зато он был дешевым. Имеющиеся в продаже системы от IBM приобретали все большую популярность, они имели хорошую аппаратную и софтверную поддержку, но все еще оставались очень дорогими для домашних пользователей. PCjr позиционировался IBM как система для домашнего использования, он значительно превосходил Commodore 64, отлично конкурировал с Apple II и обладал большей частью достоинств IBM PC.
IBM PCjr позиционировался как компьютер для дома и имел все шансы на у/спех благодаря многоцветной графике и приятной в звучании аудио-системе.
Теоретически, PCjr мог запросто превзойти Apple II и Commodore 64. В нем использовался процессор Intel с частотой 4.77 MHz, он был быстрее по сравнению с процессором 6502 MOS-tek, который был задействован в системах Apple II и Commodore. Базовая комплектация PCjr имела 64 Кб оперативной памяти и 64 Кб ROM, системы же с процессорами MOStek были ограничены лишь 64 Кб общего адресного пространства. Подсистема видео PCjr могла выводить 40 или 80 столбцов, что делало систему пригодной для использования с телевизором или RGB дисплеем. Графические возможности были лучше, чем у Apple II, и равны по мощности Commodore 64 (Commodore 64 поддерживал вывод спрайтов, что давало этой системе небольшое преимущество в играх). По отношению к Commodore 64 PCjr имел отличные возможности по расширению. Также он был более разумно спроектирован в сравнении с Apple II: в PCjr по умолчанию уже было установлено много устройств, а в Apple II лишь имелись слоты расширения. Однако, наибольшей гордостью PCjr была поддержка популярного программного обеспечения архитектуры IBM PC для дома и бизнеса.
Звучит впечатляюще, не так ли? К сожалению, реально PCjr не был конкурентом домашним компьютерам того времени, а конкурировал лишь со своим старшим братом - IBM PC. И по большей части в этом соперничестве PCjr уступил.
Стандартные модели IBM PC имели слоты расширения, а внешние устройства для них хорошо поддерживались третьими производителями. В PCjr многие из устройств использовались уже в базовой комплектации, а возможности по расширению были более чем скромными. Варианты с добавлением памяти, флоппи-дисковода или жесткого диска первоначально не поддерживались, да и сама машина была создана так, что сделать это с легкостью не получалось. PCjr не был полностью совместим с PC на уровне компонентов, а программное обеспечение требовало разные версии BIOS и дополнительную настройку видеорежимов. Стоимость системы была слишком высокой, чтобы хоть как-то компенсировать все эти недостатки.
В момент анонса системы были доступны следующие опции («PCjr Magazine», февраль 1984 г., номер 1):
• IBM PCjr (модель начального уровня, 64 Кб оперативной памяти и клавиатура), 669$.
• IBM PCjr (усовершенствованная модель, 128 Кб оперативной памяти, дисковод и клавиатура), 1269$.
• Дисковод, 480$ (для обновления модели начального уровня).
• Дополнительные 64Кб оперативной памяти, 140$ (для обновления модели начального уровня, с поддержкой 80-столбцовых графических режимов).
• Внутренний модем, 199$ (300 бит/с).
• Принтер для параллельного порта, 99$.
• Джойстик, 40$ (PCjr поддерживал до 2 джойстиков).
• Шнур клавиатуры, 20$ (базовая клавиатура - беспроводная, использующая инфракрасный порт).
• Накладки для клавиатуры, 10$ (5 штук, для оригинальной клавиатуры, резиновые).
• Переходник для подключения телевизора 30$ (ВЧ модулятор).
• Кабель для RGB дисплея, 20$ (для использования стандартного RGB монитора с PCjr).
• Кабель для кассетного магнитофона, 30$ (для операций сохранения/восстановления с кассеты).
• Адаптер для последовательных устройств, 25$ (для использования внешнего модема).
• IBM PC Compact printer, 175$ (термопринтер для PCjr).
• Адаптер для IBM PC Compact Printer, 40$ (адаптер для использования компактного принтера на других PC).
• IBM PCjr Color Monitor (14-дюймовый RGB дисплей для PCjr).
• DOS 2.1 с BASIC, 65$ (DOS 2.1 для дисководов).
• IBM PCjr BASIC, 75$ (Картридж BASIC для PCjr).
PCjr, в итоге, провалился. Он оказался слишком дорогим, чтобы конкурировать с домашними системами Apple II и Commodore 64. А по сравнению с IBM PC он был слишком ограничен в возможностях и не до конца совместим (парадоксально, что система с брендом IBM в названии оказалась неудачной, поскольку не была IBM-совместимой). Перечисленные выше факторы поспособствовали тому, что люди просто не хотели покупать PCjr.
Небольшие дополнения и обновления для поддержки PCjr стали появляться уже много позже его официального анонса. Система была признана «аппа-ратно-сложной», поэтому пользователям требовалась дополнительная помощь в обслуживании. Общая модернизация PCjr включала: расширение картами памяти, вторым флоппи-дисководом, жестким диском, более удобными клавиатурами, мышками и т.д. Из-за нестандартного оборудования PCjr многие из дополнительных опций подходили только для него и были несовместимы с IBM PC.
IBM отказалась от PCjr в 1985 году. Они плохо продавались, цены были заоблачными, а несовместимость с другими продуктами семейства PC стала основой для плохих отзывов в прессе. Дополнения и обновления поддерживались компанией IBM совсем незначительное время.
Итак, давайте оторвемся от печальной истории первой домашней системы IBM и посмотрим на ее технические характеристики и возможности.
Характеристики PCjr
Жепезная часть
Базовая модель PCjr имела следующие характеристики:
• Intel 8088 (или AMD D8088) процессор с частотой 4.77Mhz (был аналогичен IBM PC и IBM XT в то время).
• 64 Кб оперативной памяти, которые впаяны в материнскую плату.
• Видеочип Motorola 6845, который официально назывался VGA (Video Gate Array), под видеопамять отводилось от 2 до 96 Кб оперативной памяти.
• Улучшенная версия CGA Plus, которая почти полностью совместима со стандартом CGA, однако имеющая несколько дополнительных графических режимов.
• Доступ к слотам расширения с правой стороны системы. Расширение производилось с помощью специальных внешних устройств.
• 62-кнопочная клавиатура, известная под названием «резиновая» («Chiclet»).
• Звуковая карта Texas Instruments SN76496, 3 голоса, 16 уровней громкости, генератор белого шума.
• 2 слота для картриджей на передней части.
Усовершенствованная модель PCjr имела следующие отличия от базовой системы:
• 128 Кб оперативной памяти.
• 5,25" дисковод гибких дисков (объем дискет - 360 Кб).
Ограничения, которые относили PCjr к категории систем начального уровня:
• Память не расширяется более 128 Кб (впоследствии это ограничение удалось обойти).
• Может быть установлен только один дисковод (это ограничение также обошли).
• Отсутствие винчестера (обошли в дальнейшем).
• Компьютер имел ограниченный потенциал в плане расширения, поскольку не мог использовать комплектующие, изначально предназначенные для PC и XT.
• Корпус PCjr по сравнению с таковым у PC и XT был относительно хрупким и тонким.
Процессор 8088
Процессор Intel 8088, использовавшийся в PCjr, был абсолютно идентичен тем процессорам, которые имелись в стандартных компьютерах IBM PC и IBM XT. Он был частично 16-разрядным, в отличие от популярного в то время 8086 процессора, так как имел 8-битную шину памяти и 8-битную шину ввода/вывода.
8-битная шина ограничивала производительность, однако обеспечивала значительную экономию в стоимости. Большое количество микросхем и периферийных устройств, предназначенных для предыдущих 8-разрядных процессоров, работало и на PCjr. Стандартным апгрейдом для новой системы IBM (так же, как и для PC или XT) был процессор NEC V20, который являлся 8088-совместимым аналогом, но не был просто клоном детища Intel 8088. Реализация этого процессора была даже более совершенна, что позволяло ему быть чуть более производительным (выигрыш до 30%), нежели популярный продукт Intel. Он содержал приблизительно 29000 транзисторов, работал на частоте от 8 до 12 МГц и изготовлялся по технологии CMOS. Основной причиной более высокой производительности была аппаратная реализация инструкции умножения, тогда как 8088 процессор выполнял ее программно. Процессор от NEC был отличным выбором для домашних систем того времени, однако некоторые программы и игры не были совместимы с ним (хотя, таких приложений было совсем немного - например, игра «Lode Runner Broderbund»). Процессор Intel 8088, в целом, являлся довольно примитивным, он мог адресовать максимум 1 мегабайт памяти с помощью схемы сегментирования адресов. Позже Intel архитектурно заменила его на модели 80286, 80386, 80486, Pentium, и т.д. На рынке существовала разновидность процессора Intel с индексом «s» (8088s), который не имел кэшпамяти на чипе и не поддерживал конвейерную обработку данных (один такт - для чтения данных, другой - для выполнения простейшей операции).
В ранних моделях PCjr процессоры Intel 8088 вставлялись в сокеты на материнских платах, что позволяло легко и быстро заменить их в случае необходимости. Позже стали выходить модификации, у которых процессоры были впаяны непосредственно в материнскую плату. В таком случае уменьшалось количество комплектующих при сборке, а также должна была повыситься надежность за счет невозможности замены процессора. Позже PCjr могли оснащаться процессорами AMD D8088 - лицензированными аналогами Intel 8088 (это были обычные процессоры 8088, только производились компанией AMD, в отличие от NEC V20, которые являлись совместимыми, но их логика была реализована по-другому).
Подсистема памяти
Память в PCjr работала на частоте 4.77Mhz и не могла быть быстрой по определению. Время цикла памяти - примерно 210 не. По технической документации цикл шины обычно равен четырем тактам. Это означает, что чтение из ROM происходило за 840 не. Чтение из RAM приходилось делить с видеоподсистемой, добавляя в среднем два такта к четырем требуемым. Это означает, что чтение и запись из RAM занимали около 1,2 микросекунды, а это очень медленно. Время цикла оперативной памяти, используемой в PCjr, было 150 не. Очевидно, что подсистема памяти в подобной системе не могла быть производительной.
Базовые 64 Кб памяти системы располагались на материнской плате, а дополнительные 64 Кб могли быть добавлены через специальный внешний слот (в других системах того времени память добавлялась с помощью карт расширения на шине ввода/вывода). Работа PCjr с дополнительной картой памяти осуществлялась следующим образом: ссылки на четные биты в памяти отправлялись в карту расширения, а ссылки на нечетные биты - в память на материнской плате. Такая примитивная форма работы с переключением банков помогала улучшить производительность. Во время начала продаж PCjr в IBM заявляли, что максимальный объем памяти для их новой системы -128 Кб. Причем, это самый максимум, большие объемы не будут доступны. В этом PCjr сильно проигрывал по сравнению с PC и XT, которыми уже был достигнут предел в 640 Кб. Вскоре после анонса сторонние поставщики выяснили, каким образом в PCjr можно установить больше памяти. Популярными продуктами для этих целей были "Microsoft Booster" (дополнительные 128 Кб плюс порт для мыши) и "Tecmar Jr. Captain". В конце концов, в IBM официально исправили имевшееся ограничение, и вскоре после этого в продаже стали появляться модели PCjr с 640 Кб памяти. В основном, расширение памяти делалось с помощью установки дополнительных корзинок. Многие корзинки памяти могли быть улучшены путем замены 64-ки-лобитных чипов на 256-килобит-ные (используя простую пайку). Корзинка расширения с 128 Кб памяти могла быть трансформирована в более вместительную - до 512 Кб. В сумме с уже имеющимися 128 Кб в системе, это давало пользователям итоговые, столь необходимые, 640 Кб! В этом случае дополнительная память свыше 128 Кб должна была настраиваться специальным драйвером, иначе ОС не видела этот объем. Что интересно, на установленную дополнительную память в корзине никак не влияла видеоподсистема, то есть она могла функционировать на положенной скорости в четыре цикла вместо шести, что являлось заметным увеличением в скорости для программного обеспечения. Чтобы воспользоваться таким преимуществом, программное обеспечение по управлению памятью должно было зарезервировать нижние 128 Кб памяти. В подобной конфигурации PCjr был так же быстр, как PC или XT. Еще один интересный момент - PCjr не работал с ЕСС (коррекция ошибок чтения) памятью, что являлось еще одной мерой по сокращению издержек при производстве. IBM PC и XT обладали такой возможностью, a PCjr стал одной из первых машин на рынке, которые ее не имели. В последующие годы память без контроля целостности стала стандартной, так как другие производители тоже начали сокращать расходы при производстве своих систем.
Графическая подсистета
Графическая часть PCjr была революционной. Одно из новшеств - то, что PCjr был первым PC-совместимым компьютером с интегрированной графической системой, так как в IBM PC и XT для этих целей использовались дополнительные карты (видеоадаптеры). Это привело к упрощению компоновки (не было дополнительных перемычек и переключателей), улучшенной интеграции с остальными компонентами и подсистемами, и даже к уменьшению количества используемых при производстве компонентов. С другой стороны, такой подход ввел определенные дополнительные ограничения - в будущем был невозможен апгрейд видеоподсистемы.
Наиболее распространенными видеокартами в то время были CGA-совместимые (Color Graphic Adapter) графические адаптеры. PCjr имел в составе не самый совершенный CGA-совместимый адаптер, однако с функциями CGA он справлялся. Этот адаптер имел несколько дополнительных графических режимов (большее количество цветов в высоких разрешениях), для этого требовалось больше памяти, чем имелось в стандартных видеокартах стандарта CGA (16 Кб). Минусом продвинутой графики PCjr было то, каким образом она была реализована. IBM ее урезала до вида, когда вместо графической памяти использовалась основная системная память (сейчас это самый популярный и повсеместный вариант использования интегрированной графики). Видеокарты для PC и XT имели свою собственную память на борту. Последствия такого способа организации:
• По сравнению с PC, имеющим в составе видеокарту класса CGA с определенным объемом памяти, у PCjr доступной памяти всегда было немного меньше - в зависимости от используемого видеорежима. PCjr со 128 Кб оперативной памяти, использующий стандартный CGA-адаптер, имел только 112 Кб, доступных для процессора. При использовании более высоких цветных режимов количество памяти сокращалось до 96 Кб.
• Доступ процессора к памяти тормозился видеоподсистемой, которой также был необходим доступ к памяти во время работы. Память не могла предоставлять доступ к своим данным одновременно для двух устройств, а только одному из них. Из-за такой особенности работы PCjr с процессором, работающем на частоте 4.77МГц, был менее производительным чем аналогичный PC или XT.
Графические режимы PCjr для удобства сведены в таблицу внизу страницы.
Слоты расширения.
IBM постарались оснастить свое детище всеми возможными портами ввода/вывода для того, чтобы упростить процесс апгрейда. В PCjr имелись внешние и внутренние порты для карт расширения.
Внешние порты:
• Два слота для картриджей (на передней части машины).
• Разъем для проводной клавиатуры.
• Инфракрасный порт клавиатуры.
• Два разъема для джойстиков.
• Разъем для светового пера.
• Последовательный порт.
• Разъем видео RGB для подключения Color Monitor или RGB Monitor.
• Композитный видеовыход для подключения к телевизору.
• Порт расширения шины ввода/вывода с правой стороны («корзинка расширения»).
• Кассетный порт.
• Аудио-порт (RCA разъем, монофонический).
Внутренние порты:
• Слот для опциональной карты памяти на 64 Кб.
• Разъем для модема (300 бит/с);
• Разъем для контроллера флоппи-дисков.
При разработке PCjr в IBM ориентировались на то, чтобы любой пользователь с его помощью мог воплотить свои самые сокровенные мечты. Тем не менее, IBM сделала два серьезных промаха:
• В PCjr не были включены слоты расширения для карт, совместимых с PC или XT (например, 8-битный ISA). К тому же, из имеющегося в продаже, он не все поддерживал, что очень сильно ограничивало потенциал системы.
• Не был предусмотрен параллельный порт принтера. Это -главный промах, так как практически в каждом PCjr этот порт использовался в качестве опции через «корзинку». Почти все пользователи использовали его, так почему же IBM не сделало его стандартным? Принтеры для последовательного порта, конечно же, тоже существовали, но более популярными были принтеры именно для параллельной шины.
Среди менее значительных промахов IBM - использование выделенного разъема последовательной шины только для подключения модема. Другие стандартные устройства не поддерживались этим интерфейсом. Из положительных вещей, которые хотелось бы отметить, можно выделить наличие композитного видеовыхода, который освободил от необходимости покупать относительно дорогой PCjr Color Monitor, и то, что любителям игр не было необходимости докупать плату расширения для поддержки джойстиков, так как необходимые разъемы уже были на передней панели.
Клавиатура Chiclet Keyboard
Итак, напомним себе еще раз, что система PCjr была нацелена на домашних пользователей. А «домашние» условия иногда могут быть весьма суровыми, так что вместо использования обычных клавиатур, к которым все уже очень привыкли, IBM представила специальную «закаленную» клавиатуру Chiclet, предназначенную для работы на ней даже жирными пальцами. Для большинства пользователей опыт ее использования был просто ужасным. Однако для тех, кто только что перешел на PCjr с систем типа Timex Sinclair 1000, клавиатура казалась просто замечательной. В целом, реакция общественности на оригинальную клавиатуру Chiclet была настолько негативной, что в IBM через год предложили ей более толковую замену.
Оригинальная клавиатура и заменяемая клавиатура имели новый тип разъема - инфракрасный порт для подключения к системному блоку, что делало их реально портативными устройствами. Однако такой способ подключения имел и ряд ограничений, один из которых -клавиатура должна была находиться в прямой видимости передней части системного блока и не могла быть слишком отдалена от его центра, а также она боялась прямых лучей света. Если подобное расположение становилось проблемным для покупателей, IBM предлагала дополнительный кабель для клавиатуры (параллельно с этим отпадала необходимость использовать батарейки).
Клавиатура в PCjr имела главный и серьезный недочет - малое количество кнопок! Вместо того, чтобы сделать ее стандартной, с 83 кнопками, как на PC и XT, IBM производили 62-клавиш-ную клавиатуру. На ней не было функциональных и цифровых клавиш. Было принято решение добавить клавишу «Fn» (сокращенно от «Function»), которая, будучи одновременно нажатой с другими кнопками, эмулировала недостающие комбинации. Такая альтернативная раскладка клавиатуры делала очень неудобным использование некоторых программ. Предлагаемые сторонними разработчиками клавиатуры для PCjr имели стандартное количество кнопок и привычное их расположение.
IBM Joystick прекрасно работал с PCjr.
Звуковая подсистета
В PC и XT использовались примитивные генераторы звука, способные исполнять одновременно только один тон. PCjr имел на борту чип Texas Instruments (TI 76496), который выводил трехголосый звук и имел генератор белого шума. Слабый по сегодняшним меркам PCjr в свое время мог петь по сравнению с PC и XT, которые в лучшем случае только щебетали.
Встроенный динамик PCjr был весьма простым. Чтобы задействовать все возможности чипа TI 76496, нужно было использовать PCjr Color Monitor с внешним динамиком или просто подключить к PCjr дополнительный динамик. Для этой цели на задней панели имелся разъем RCA.
Игры, которые запускались на PCjr, часто использовали многие из расширенных возможностей звуковой подсистемы. Подобный классный звук не могли предложить никакие другие системы в то время. Однако стандартом он стал лишь тогда, когда стали распространяться популярные в последующем звуковые карты.
Фантастическая для того времени графика игры Leisure Suit Larry ( про похождения любовника-неудачника) смотрелась пришельцем из будущего.
Слоты дпя картриджей
Слот для картриджей позволял пользователю, не снимая крышку корпуса, добавлять дополнительные 128 Кб ROM памяти. Каждый картридж мог содержать по две микросхемы 32 Кб ROM памяти, то есть общий объем достигал 64 Кб.
В картриджи заводским способом зашивались определенные сегменты. Было зарезервировано четыре области - D000: 0000, D800: 0000, Е000: 0000 и Е800: 0000, причем картридж мог находиться только в одной из них, микросхемы были не перемещаемыми. Два дополнительных региона, находящихся в зарезервированных 64 Кб для BIOS, делало возможным перемещение BIOS во время замены картриджа. Использование двух картриджей одновременно, которые использовали одну и ту же область памяти, не представлялось возможным, так как это обычно вызывало "зависание" системы (программы «Color Ра-int» и «Cartridge BASIC» работали именно в этом режиме).
Каждый картридж имел 15 адресных линий, 8 линий данных и некоторые другие линии чипсета. 15 адресных линий лимитировали объем ROM картриджа до 32 Кб. Чтобы получить 64 Кб картридж, нужно было использовать два ROM и две линии чипсета. Картриджи предназначались только для чтения -записать на них данные не было возможности (имеется в виду, обычными средствами, так как существовали способы для использования линий в режиме имитации записи).
Глядя на графику в «Demon Attack», сложно понять, почему IBM PCjr ждал такой оглушительный провал, а Tandy 1000 - успех. Хотя компьютер способен был демонстрировать многоцветную графику, проигрывать музыку и даже клавиатура у него была беспроводной, продавался он значительно хуже Apple Macintosh. Разгадка этой тайны всплыла лишь недавно. Для запуска IBM PCjr требовался картридж, вставляемый в специальный разъем. Продавцы боялись, что картридж украдут, если они оставят PCjr включенным без присмотра и попросту не включали эти модели на стендах. В это же время Макинтоши проигрывали разнообразные графические демонстрации. Покупатели физически не могли увидеть, что IBM PCjr ничем не уступает новинке от Apple, и делали выбор в пользу конкурента.
Картриджи предназначались для горячей замены (hot swapped), после их вставки PCjr проходил цикл сброса. Использование слотов для картриджей (при вставке/удалении картриджа) позволяло перезагружать машину. Сброс цикла был необходим для того, чтобы позволить BIOS просканировать ROM области для вновь добавленных картриджей. Простым решением для сброса на PCjr был специальный кабель, который соединял конкретные дорожки картриджа со стороны его посадки в слот. На практике такие устройства использовались довольно часто и повседневно, ведь плохо написанный софт очень часто "подвешивал" систему.
Дисковод.
PCjr использовал стандартные дисководы 5,25"с поддержкой дискет объемом 360 Кб. Он был двухсторонним, а дискеты для него назывались «дисками с двойной плотностью записи». Привод продавался в специальном корпусе для легкого монтажа и оснащался вентилятором, предохраняющим дискеты от перегрева. Детище IBM было одной из первых машин, которая использовала дискеты половинной толщины, но для корректной работы с ними требовалась новая версия ОС - DOS 2.1.
Флоппи-дисковод подключался к контроллеру стандартным кабелем для дисководов. Контроллер FDD имел несколько особенностей:
• Поддерживал только один дисковод.
• Не использовал DMA для передачи данных. Во время работы это приводило к постоянным проблемам, плюс инициировались конфликты с клавиатурой и разными последовательными устройствами.
• Был разработан специально для PCjr и подходил для установки в слот на материнской плате исключительно в системах PCjr.
С имеющимся контроллером без каких-либо модификаций помимо дисковода с поддержкой половинных дискет можно было использовать также 720 Кб 3,5-дюймовые модели, так как оба дисковода использовали одну и ту же скорость передачи данных и имели одинаковый разъем. Единственная проблема заключалась в BIOS, который не знал о дисководе гибких дисков с более чем 40 дорожками. Для решения проблемы использовался драйвер DRIVER.SYS в составе DOS 3.3. Он «объяснял» PCjr, как необходимо управляться с дополнительными треками на диске, в противном случае 3,5-дюймовый диск мог выглядеть точно так же, как и 5,25" (с рабочим объемом всего 360 Кб).
Подобной идиллии у PCjr не получилось, хотя эти машины крайне надёжны и работают до сих пор.
Последовательный порт
PCjr имел только один разъем последовательной шины для общих целей, так как второй использовался исключительно для встроенного внутреннего модема. Последовательный порт управлялся стандартным чипом National Semiconductor 8250 UART. Приставка UART означает, что он использовался для совместимости со старыми ПК. Порт располагался на задней части PCjr и имел нестандартный разъем «Вегд». IBM продавала специальный кабель-адаптер, чтобы у пользователей была возможность подключить к нему стандартный разъем D25. Чипом UART можно было передавать данные со скоростью от 50 до 4800 бод. На очень медленных модемах (и на последовательных устройствах в целом) бод и бит в секунду были взаимозаменяемыми величинами, потому что бит информации передавался одним простым сигналом. Свыше скоростей 2400 бит/с имеется вероятность того, что уже несколько битов могут быть закодированы в единице сигнала. Хотя PCjr мог работать на скорости передачи до 4800 бит/с, соединения выше 1200 бит/с не рекомендовались, так как сразу же начинались проблемы с клавиатурой. Аппаратная часть по управлению клавиатурой на PCjr (используется для декодирования клавиш) была ужасно медленной и блокировала другие прерывания, поскольку использовала NMI (немаскируемые прерывания). Например, если пользователь набирал текст и одновременно принимал данные со скоростью 2400 бит/с, то каждое последующее нажатие клавиши могло привести к полной потере входящих данных. Какое могло быть решение? Или увеличить быстродействие PCjr, или не трогать клавиатуру при получении данных из сети на полной скорости. Дисковод мог стать еще одной проблемой при передаче данных по последовательному интерфейсу, так как он не использовал DMA (PCjr вообще не имел контроллера DMA на материнской плате). В случае если процессор обращался к флоппи-дисководу, и в это же время поступали данные на последовательный порт, происходил крах -все данные терялись. Решение? Не задействовать дисковод при использовании последовательного порта. Если вам требовалось загрузить файл, то, во избежание проблем, необходимо было сохранять его в RAM.
В настройках СОМ-портов на PCjr была небольшая путаница. Когда внутренний модем не был установлен, внешний последовательный порт ввода/вывода определялся как СОМ1. Тем не менее, он использовал адрес порта и IRQ, которые обычно связаны с COM2 (адрес 0x2f8 и IRQ 3). Когда устанавливался внутренний модем, он становился портом СОМ1, а внешний порт ввода/вывода становился уже COM2. Адреса портов и прерываний, однако, при этом оставались неизменными. Владельцам PCjr, которые использовали внешний модем, иногда приходилось прибегать к следующему трюку -переименовывать внешний последовательный порт ввода/вывода в COM2, чтобы программное обеспечение не путалось в портах и прерываниях (если программа не использовала прямого доступа к BIOS для управления последовательным портом, то могла возникнуть путаница). Такие операции проделывались с помощью небольшой утилиты под названием "COMSWAP".
Софтверная часть
В целом, PCjr являлся РС-сов-местимой системой. На нем запускались те же версии DOS, как и на PC, он имел аналогичный BIOS и схожую архитектуру. Однако имелись и отличия:
• BIOS в PCjr и в PC, в основном, были схожими, но на системах IBM он был реализован несколько иначе. На верхнем уровне базовые системы ввода/вывода были полностью совместимы, однако если опуститься глубже в код, станут видны нюансы реализаций.
• Клавиатура кардинально отличалась от аналогичных стандартных устройств для PC. У нее не было некоторых клавиш, однако они могли эмулироваться с помощью специальных сочетаний. Отличалась также и обработка нажатия клавиш контроллером. При одновременной работе клавиатуры и устройств на последовательной шине возникало много проблем.
• Система не имела контроллера DMA. Это означает, что работа дисковода не могла быть совмещена с другими операциями ввода/вывода, такими как связь по последовательному интерфейсу или с клавиатурой.
• Графический контроллер поддерживал расширенные режимы CGA, он был совместим на уровне BIOS с обычным PC. Однако, программы, которые использовали прямой доступ к железу, обычно не работали на PCjr.
• Увеличенные тайминги в PCjr по сравнению со стандартным PC (большая зависимость от того, какой из чипов обращался к памяти).
• PCjr имел более продвинутый звук.
• PCjr имел слоты для картриджей, которые использовали защищенную память.
• Для того чтобы задействовать более 128 Кб оперативной памяти, необходимо было использовать специальные драйвера.
Большинство программного обеспечения в то время не особо заботилось о точном определении железа и не учитывало разницу в таймингах, а другие РС-совместимые компьютеры на рынке не могли использовать аналогичную компьютерам PC и XT базовую систему ввода/вывода (да и скорость их работы могла сильно отличаться от «оригинальных» систем). Несмотря на это, программное обеспечение, предназначенное для работы в подобных системах, обычно работало и на PCjr. Игры для PC, которые использовали прямой доступ к «железу», имели большие проблемы совместимости с PCjr, самой распространенной из которых было искажение видеоизображения из-за игнорирования стандартных запросов BIOS.
Операционная систета DOS
PCjr поставлялся с новой версией ОС - DOS 2.1. Она имела незначительные дополнительные возможности по сравнению с DOS 2.0, в основном это касалось поддержки дисководов половинной высоты. DOS 2.1 по праву считается одной из лучших версий DOS - она была маленькой, компактной и быстрой системой. Однако она имела и достаточно много ограничений, к тому же в ней было найдено несколько серьезных ошибок, для решения которых впоследствии IBM выпускала патчи.
Последней официально поддерживаемой версией DOS для PCjr являлся DOS 3.3. Версия DOS 4.0 так же работала на PCjr, но официально это не афишировалось, так как DOS 4.0 не имел репутации высококлассного программного обеспечения. DOS 5-ой и 6-ой версий нормальным образом не работали на PCjr, однако это могло быть исправлено специальными патчами.
Софт, постаепяешиОся в картриджах
Помимо варианта загрузки с дискеты программное обеспечение для PCjr могло быть загружено также и со специальных картриджей. PCjr был единственным персональным компьютером от компании IBM, в котором имелись слоты для картриджей, так как обычно машины с подобными слотами ассоциировались с игровыми системами (такими, например, как Atari). Однако, помимо плюсов, имелись и довольно серьезные недостатки при использовании картриджей. Программное обеспечение, записанное в них, имело тип ROM и не могло быть изменено в случае обнаружения ошибок. Любой картридж - механическое устройство, а значит, со временем оно подвержено износу. Реализация поддержки картриджей в PCjr ограничивала полезный объем программируемых данных до 64 Кб.
Однако, картриджи имели и преимущества в использовании. Программное обеспечение запускалось с них быстрее, так как происходило чтение из ROM. Программам, загружаемым с картриджа, не требовалось наличия операционной системы DOS, да и дисковод им был незачем. Картриджи не потребляли драгоценную RAM память, они намного более надежны по сравнению с дискетами. А более всего их любили компании, выпускающие платное программное обеспечение, поскольку физические атрибуты картриджа сложнее скопировать. Ниже представлены некоторые наиболее популярные программы и игры, продававшиеся в исполнении на картриджах:
• Color Paint.
• Mineshaft.
• CrossFire.
• Scuba Venture.
• Demon Attack.
• MicroSurgeon.
• Pitfall II.
• River Raid.
• Lotus 123 version 1A.
• Electric Desk.
• Cartridge BASIC.
Имелись в продаже и такие уникальные картриджи:
• Racore «РС ID cartridge)) -для перезаписи части BIOS, чтобы обмануть программы и заставить думать, будто бы они запускаются на настоящем PC.
• «Synectics Quicksilver cartrid-ge» - модификация BIOS для ускорения процесса загрузки.
• PC Enterprises «Keyboard» buffer cartridge - позволял использовать клавиатуру в то время, когда работал дисковод (даже если ваша система не имела поддержки DMA).
Драйверы
Мир DOS полон драйверов для различных устройств, они использовались для расширенной поддержки нестандартного или первоначально не поддерживаемого оборудования в операционной системе. PCjr в очень большой степени зависел от драйверов (это было связано со специфической работой памяти). Например, если вы добавляли в PCjr дополнительную память на 128 Кб и хотели сделать ее видимой из DOS, необходимо было использовать специальный драйвер. Интересный факт - при приобретении корзинки для дополнительной памяти в комплекте с ней шел специальный драйвер для операционной системы DOS. Ни в одной другой системе, хоть немного совместимой с PC, таких проблем совместимости не было.
Существовали и другие драйверы, необходимые для поддержки работоспособности разнообразных утилит и программ: RAM disk, часов, календаря и т.д.
Язык программирования BASIC
Как и другие системы компании IBM, PCjr имел встроенную в ROM версию BASIC, известную как «Cassette BASIC». Если машина не могла загрузиться с дискеты или жесткого диска, тогда она стартовала с «Cassette BASIC». Другие IBM совместимые системы не могли этого сделать, так что если у них не получалось загрузиться с дискеты или жесткого диска, то на экране просто появлялось сообщение вида «ROM BASIC NOT FOUND».
Каждая версия IBM DOS поставлялась с двумя версиями BASIC: «BASIC» и «BASICA». В «BASICA» было несколько больше возможностей, и занимала она чуть больше места чем «BASIC». Обе эти версии были известны как «disk BASIC. В «disk BASIC» была дополнительная поддержка для доступа к файлам на диске, используя средства DOS. Имелась еще одна версия BASIC для PCjr, аналогов которой не было в мире PC и XT. Она поставлялась на картридже и была известна как «Cartridge BASIC». «Cartridge ВА-SIC» поддерживала все расширенные возможности PCjr, включая его продвинутые графику и звук. Версия «Cartridge BASIC» могла быть использована в качестве замены «Cassette BASIC» или вместе с DOS в качестве замены для обеих версий «disk BASIC».
Система IBM DOS была изменена таким образом, чтобы всегда обращаться к картриджу «BASIC» при вызове команд #BASIC или #BASI-СА. Это фактически сделало недоступным «disk BASIC» и вынуждало пользователей, которые хотели использовать BASIC во время работы в DOS, приобретать «cartridge ВА-SIC». Можно было обойти эту проблему путем переименования файлов «disk BASIC», но при этом происходили ошибки чтения, что вынуждало систему загружать «disk BASIC» (пользователи могли в этом случае работать с ним так же, как на PC или XT). Чтобы обойти проверку железа использовался картридж «РС ID» от Racore. Следует отметить, что PCjr с более чем 128 Кб памяти неправильно работал с «cartridge BASIC» и, чтобы хоть как-то его запустить, владельцам PCjr помогала небольшая программа «JRBASIC». Принцип ее работы заключался в исправлении пространства оперативной памяти с последующим запуском «cartridge BASIO.
Все перечисленные выше версии BASIC были выпущены компанией Microsoft, они являлись интерпретаторами, но был также доступен и не поддерживающий продвинутые звук и графику «ВА-SIC compiler*. Помимо основных версий программного обеспечения от крупных компаний, существовали также и другие версии BASIC для PCjr. Например, многим пользователям нравился «Zbasic Zedcor», который был BASIC-компилятором и включал встроенный ассемблер, поддерживал структуры и функции.
Игра «King Quest» была создана эксклюзивно для платформы IBM PCjr, но позднее портирована на Tandy 1000 и другие системы.
Другие языки PASCAL, С, Assembler
Пользователи PCjr не были ограничены только встроенными в систему или поставляемыми на картриджах интерпретаторами BASIC. Если другой язык программирования работал на PC совместимых машинах, то, вероятнее всего, он мог заработать и на PCjr. «Compiled BASIC» был отличной альтернативой интерпретируемому BASIC («ВА-SIC Interpreter*). «Compiled BASIC» работал намного быстрее чем interpreter BASIC», потому что вся ресурсоемкая работа делалась компилятором. IBM предлагала компилятор BASIC особого вида специально для PCjr. Другие компании также предлагали компиляторы для различных версий BASIC. Одним из распространенных компиляторов BASIC был «Zba-sic» от Zedcor, он был быстрым, давал доступ к встроенному коду, а также предоставлял некоторые дополнительные функции, которых не было в IBM BASIC (в частности, оверлеи). Иногда компилятор отказывался работать на PCjr, потому что ему требовалось больше ресурсов, чем те, которые имелись в системе (объем памяти, свободное дисковое пространство и т.д.).
Популярной альтернативой для BASIC был PASCAL. Borland's Turbo Pascal версии 3.0 был прекрасным выбором для пользователей PCjr - небольшой и эффективный, он помещался всего на одной дискете. IBM также предлагали компилятор PASCAL.
Компиляторы языка С тоже могли работать на PCjr, однако обычно они занимали больший объем (несколько дискет), из-за чего возникало много проблем при использовании на стандартном PCjr.
И, конечно же, всегда можно было заняться программированием на ассемблере, так как написанные на нем программы всегда наилучшим образом выжимали максимум производительности из любой системы.
Автор: Игорь Шидловский
Журнал: Emulators Machine