stringtranslate.com

Коммодор 128

Commodore 128 , также известный как C128 , C-128 или C= 128 («C=» представляет графическую часть логотипа), является последним 8-битным домашним компьютером , который был коммерчески выпущен Commodore Business Machines (CBM). Представленный в январе 1985 года на выставке CES в Лас-Вегасе , он появился через три года после своего предшественника, Commodore 64 , самого продаваемого компьютера 1980-х годов. За четыре года производства было продано около 2,5 миллионов C128.

C128 — это значительно расширенный преемник C64 с почти полной совместимостью. Он размещен в переработанном корпусе с улучшенной клавиатурой , включая цифровую клавиатуру и функциональные клавиши. Память была увеличена до 128 КБ ОЗУ в двух банках  по 64 КБ. Отдельный графический чип обеспечивал 80-колоночный цветной видеовыход в дополнение к исходным режимам C64. Он также включал ЦП Zilog Z80 , который позволяет C128 запускать CP/M , как альтернативу обычной среде Commodore BASIC . Огромная библиотека программного обеспечения CP/M в сочетании с библиотекой программного обеспечения C64 дала C128 один из самых широких диапазонов доступного программного обеспечения среди его конкурентов.

Основным разработчиком оборудования C128 был Бил Херд , работавший над Plus/4 . Другими инженерами оборудования были Дэйв Хейни и Фрэнк Палайя, а работа по проектированию ИС была выполнена Дэйвом ДиОрио. Основное системное программное обеспечение Commodore было разработано Фредом Боуэном и Терри Райаном, в то время как подсистема CP/M была разработана Фон Эртвайном.

Дизайн

BASIC-приглашение для Commodore 128 в 40-колоночном режиме, работающее под управлением Commodore BASIC V7.0

Сложная архитектура C128 [2] [3] включает четыре различных вида ОЗУ (128 КБ основного ОЗУ, 16–64 КБ видео ОЗУ VDC, 2 килобайта цветного ОЗУ VIC-II, 2 КБ ОЗУ флоппи-дисковода на C128D, 0, 128 или 512 КБ ОЗУ REU ) [ проверка не пройдена ] , два или три ЦП (основной: 8502, Z80 для CP/M; 128D также включает 6502 в дисководе) и два различных видеочипа (VIC-IIe и VDC) для различных режимов работы. [4] [5]

C128 не выполняет тест системной оперативной памяти при включении питания, как предыдущие машины Commodore. [ требуется цитата ] Вместо одного микропроцессора 6510 , как в C64, C128 включает в себя конструкцию из двух ЦП. Основной ЦП, 8502 , является немного улучшенной версией 6510, способной работать на частоте 2  МГц . Второй ЦП — Zilog Z80, который используется для запуска программного обеспечения CP/M, а также для инициирования выбора рабочего режима во время загрузки.

Клавиатура C128 включает четыре клавиши курсора , Alt, , и клавиши и цифровую клавиатуру. Ни одна из них не присутствовала в C64, который имел только две клавиши курсора, требуя использования клавиши для перемещения курсора вверх или влево. Это альтернативное расположение было сохранено в 128 для использования в режиме C64. [6] Отсутствие цифровой клавиатуры , и на C64 было проблемой с некоторым программным обеспечением для повышения производительности CP/M при использовании с картриджем Z80 C64. Клавиатура была запрошена многими владельцами C64, которые проводили много часов, вводя программы на машинном языке . [7] Многие из добавленных клавиш соответствовали аналогам, присутствующим на клавиатуре IBM PC , и сделали новый компьютер более привлекательным для разработчиков бизнес-программ. [8] Хотя 40-колоночный режим 128-го типа во многом копирует режим C64, программисту доступен дополнительный 1 Кбайт цветной оперативной памяти, поскольку он мультиплексируется через адрес памяти 1. [ необходима цитата ]HelpEscTab ↹⇧ ShiftAltEsc

Конструкция блока питания C128 отличается от той, что используется в C64. Хотя он намного больше, новый блок питания оснащен вентиляционными отверстиями и сменным предохранителем. [ необходима цитата ]

Ранние версии C128 иногда испытывают проблемы с надежностью, связанные с температурой, из-за использования радиочастотного экрана поверх основной платы. Экран был оснащен пальцами, которые контактировали с верхними частями основных чипов, что якобы заставляло экран действовать как большой радиатор . Сочетание плохого контакта между экраном и чипами, изначально ограниченной теплопроводности пластиковых корпусов чипов, а также относительно плохой теплопроводности самого экрана приводило в некоторых случаях к перегреву и выходу из строя. Звуковой чип SID особенно уязвим в этом отношении. Наиболее распространенным средством является удаление экрана, который Commodore добавила на поздних этапах разработки, чтобы соответствовать правилам радиочастот FCC . [ оригинальное исследование? ]

C128 имеет три режима работы . Режим C128 ( собственный режим ) работает на частоте 1 или 2 МГц с процессором 8502 и имеет как 40-, так и 80-колоночный текстовый режим . Режим CP/M использует как Z80, так и 8502, [9] и может работать как в 40-, так и в 80-колоночном текстовом режиме. Режим C64 почти на 100 процентов совместим с более ранним компьютером. Выбор этих режимов реализован через чип Z80. Z80 управляет шиной при первоначальной загрузке и проверяет, есть ли в приводе диск CP/M, присутствуют ли картриджи C64/C128 или нажата ли клавиша Commodore (которая служит селектором режима C64) при загрузке. На основе этих условий он переключится в соответствующий режим работы. [ необходима цитата ]

Режимы

С128

Основная плата C128

В 1984 году, за год до выпуска Commodore 128, Commodore выпустила Plus/4. Хотя он был нацелен на рынок низкобюджетных бизнес-компьютеров, которые не могли позволить себе относительно высокую стоимость и требования к обучению ранних совместимых с IBM PC, пресса Commodore восприняла его как продолжение 64 и, как ожидалось, улучшила возможности этой модели. В то время как графические и звуковые возможности C64 в целом считались превосходными, реакция на Plus/4 была разочарованием. После появления Plus/4 в прессе Commodore неоднократно звучали рекомендации о новом компьютере под названием «C-128» с увеличенным объемом оперативной памяти, 80-колоночным дисплеем, как это было стандартно для бизнес-компьютеров, новым языком программирования BASIC, который позволял программистам легко использовать графику и звук компьютера, не прибегая к PEEK и POKE , новым дисководом, который улучшил ужасную скорость передачи данных 1541 , а также полной совместимостью с C64. [10] [11]

Новый чип, VDC , обеспечивает C128 80-колоночным цветным CGA- совместимым дисплеем (также называемым RGBI для красного-зеленого-синего плюс интенсивность ). Новый на тот момент микропроцессор 8502 полностью обратно совместим с 6510 C64, но может работать на удвоенной скорости, если это необходимо. Commodore BASIC 2.0 C64 был заменен на BASIC 7.0, который включает в себя команды структурного программирования из BASIC 3.5 Plus/4, а также ключевые слова, разработанные специально для использования возможностей машины. Были добавлены редактор спрайтов и монитор машинного языка . Часть редактора экрана Kernal была дополнительно улучшена для поддержки режима вставки и других функций, доступных через комбинации клавиш ESC, а также элементарной функции работы с окнами, и была перемещена в отдельное ПЗУ . Чип VIC-II, который управляет 40-колоночным дисплеем, может работать только на частоте 1 МГц, поэтому 40-колоночный дисплей выглядит перемешанным в FASTрежиме. В 80-колоночном режиме редактор использует возможности VDC для обеспечения мигания и подчеркивания текста, активируемого с помощью escape-кодов , в дополнение к стандартному обратному тексту Commodore. [12] 80-колоночный режим C128 может отображать строчные символы вместе с графическими символами PETSCII ; 40-колоночный режим подчиняется тому же ограничению «верхний и нижний регистр» или «верхний регистр плюс графика», что и более ранние Commodore. [13] 40- и 80-колоночные режимы независимы, и оба могут быть активны одновременно. Программист с композитным и RGB-дисплеем может использовать один из экранов в качестве «блокнота» или для элементарной поддержки нескольких буферов. Активный дисплей можно переключать с помощью ESC-X. [14] В систему была добавлена ​​кнопка аппаратного сброса. Однако клавиатура не была переключена на раскладку Selectric , которая стала стандартной, вместо этого сохранив тот же дизайн, производный от ADM-3A, что и на предыдущих моделях Commodore.

Задняя часть Commodore 128

NTSC C128 будет работать с любым монитором типа CGA (TTL RGB @ 15 кГц/60 Гц), например, IBM 5153. Однако модели PAL C128 работают на частоте 50 Гц и несовместимы с большинством мониторов CGA, которые ожидают частоту обновления 60 Гц.

Вместе с C128 были представлены два новых дисковода: недолговечный односторонний 1570 и двухсторонний 1571. Была анонсирована двухдисковая модель 1572 , но она так и не была выпущена. Позже был представлен 3,5-дюймовый 1581. [ необходима цитата ] Дисковод 1581 также имеет больше встроенной оперативной памяти, чем его предшественники, что позволяет открывать большее количество файлов одновременно. BASIC 7.0 включает DLOADи DSAVEкоманды для поддержки загрузки и сохранения на диск без использования ,8или другого номера устройства, а также DIRECTORYкоманду, которая считывает информацию каталога диска непосредственно в экранную память без перезаписи памяти BASIC, как в BASIC 2.0. Кроме того, C128 представляет автоматическую загрузку программного обеспечения диска, стандартную функцию большинства персональных компьютеров, но отсутствовавшую в машинах Commodore до этого момента. Пользователям больше не нужно вводить LOAD"*",8,1. BASIC также добавил COLLECTкоманду для удаления файлов «splat» (файлов, которые не были закрыты должным образом и усечены до нулевой длины). [ необходима цитата ]

Все приводы 1571 обычно запускаются в собственном режиме на C128. Если пользователь переключается в режим C64, набрав GO 64, привод остается в собственном режиме. Но если режим C64 активируется путем удержания клавиши Commodore при включении питания, то 1571 переходит в режим 1541. Эта процедура необходима для программного обеспечения, которое выполняет низкоуровневый доступ к приводу. [ необходима цитата ]

C128 имеет вдвое больше оперативной памяти, чем C64, гораздо большая часть которой доступна для программирования на BASIC, благодаря новому чипу переключения банков MMU . Это позволяет хранить программный код BASIC отдельно от переменных, что значительно повышает способность машины обрабатывать сложные программы, ускоряет сборку мусора и облегчает отладку для программиста. Выполняемая программа может быть STOPped, ее код может быть отредактирован, значения переменных могут быть проверены или изменены в прямом режиме , и выполнение программы может быть возобновлено с нетронутой таблицей переменных с помощью GOTOкоманды BASIC. [15] Хотя другие BASIC поддерживают CONTкоманду для перезапуска выполнения без очистки переменных, редактирование любого кода приводит к их очистке. [16] Различные конфигурации памяти могут быть загружены с помощью команды BASIC BANK. [ необходима цитата ]

BASIC 7.0 имеет полный набор команд обработки графики и звука, а также дисковые команды BASIC 4.0 и улучшенную очистку мусора, а также поддержку структурного программирования с помощью IF...THEN...ELSE, DO...WHILE, и WHILE...WENDциклов. [ необходима цитата ]

С другой стороны, BASIC 7.0 работал значительно медленнее, чем BASIC 2.0, если не использовался режим 2 МГц, из-за его размера 28 КБ (на 250% больше, чем BASIC 2.0) и необходимости переключения банка для доступа к переменным программы и тексту программы BASIC (если длина превышает 16 КБ). [ необходима цитата ]

В ПЗУ 128-го есть пасхальное яйцо : ввод команды SYS 32800,123,45,6в собственном режиме открывает экран со списком основных разработчиков машины, за которым следует сообщение Link arms, don't make them."Кроме того, ввод ключевых слов QUITили OFFприведет к появлению ?UNIMPLEMENTED COMMAND ERROR. Эти команды являются пережитками интерпретатора BASIC, предназначенного для запланированного, но так и не выпущенного портативного компьютера с ЖК-дисплеем , и предназначались для выхода из интерпретатора BASIC и игнорирования ввода с клавиатуры во время выполнения чувствительной программы соответственно. [ необходима цитата ]

Большие аппаратные возможности C128, особенно увеличенный объем оперативной памяти, разрешение экрана и скорость последовательной шины, сделали его более подходящей платформой, чем C64, для работы графической операционной системы GEOS . [ необходима цитата ]

КП/М

Использование режима CP/M требует использования загрузочной дискеты. Дискета была включена в комплект компьютера, в котором не было дисковода.

Вторым из двух ЦП C128 является Zilog Z80, который позволяет C128 запускать CP/M. C128 поставлялся с CP/M 3.0 (он же CP/M Plus, который обратно совместим с CP/M 2.2) и эмуляцией терминала ADM31/3A . Картридж CP/M был доступен для C64, но он был дорогим и имел ограниченное применение, поскольку привод 1541 не мог читать диски в формате MFM, на которых распространялось программное обеспечение CP/M. Программное обеспечение должно было быть доступно на специфичных для Commodore дисках, отформатированных с использованием схемы кодирования GCR . [ необходима цитата ] Commodore сделал доступными версии PerfectCalc и PerfectWriter, производного от EMACS , [17] и группы пользователей Commodore иногда имели выбор дискет CP/M, но ограниченная доступность программного обеспечения сводила на нет одну из главных привлекательностей CP/M — его огромную библиотеку программного обеспечения. Кроме того, картриджи работают только на ранних моделях C64 с 1982 года и несовместимы с более поздними устройствами. Поскольку они также были несовместимы с C128, команда разработчиков решила поддержать CP/M, разместив Z80 на основной системной плате. [ необходима цитата ]

C128 работает с CP/M заметно медленнее, чем большинство специализированных систем CP/M, поскольку процессор Z80 работает с эффективной скоростью всего2  МГц . Это было связано с тем, что системная шина C128 была разработана вокруг процессоров 65xx. Эти процессоры обрабатывают данные и адресацию памяти совсем иначе, чем Z80. CP/M также работал медленнее по нескольким причинам, например, из-за необходимости передавать управление 8502 для любого ввода-вывода или обработки прерываний. По этим причинам лишь немногие пользователи фактически запускали программное обеспечение CP/M на C128. [ оригинальное исследование? ]

При включении C128 первым активируется Z80, который выполняет небольшой загрузчик ROM в $0-$FFF для проверки наличия диска CP/M. Если диск не обнаружен, управление передается 8502 и запускается собственный режим C128. [ необходима цитата ]

Режим CP/M на практике требует привода 1571 или 1581, чтобы быть полезным, так как 1541 не может читать диски MFM и будет работать намного медленнее из-за отсутствия поддержки пакетного режима C128. Загрузочные диски CP/M, тем не менее, должны быть в собственном формате GCR привода; диски MFM не могут быть загружены, только считаны, когда пользователь уже находится в CP/M. Это связано с тем, что код, необходимый для работы привода в режиме MFM, загружается как часть процесса загрузки. Кроме того, обычно требуется режим 80 столбцов, так как большинство программ CP/M ожидает экран из 80 столбцов. C128 эмулирует терминал ADM-3A [ требуется ссылка ] в режиме CP/M, поэтому программное обеспечение должно быть настроено для этого. Помимо стандартных команд терминала ADM-3A, доступно несколько дополнительных для использования функций VIC-II и VDC, включая настройку текста и цвета фона. Интерпретатор команд CP/M (хотя и не прикладное программное обеспечение) включает в себя защиту, которая не позволяет пользователю выдавать управляющий код, чтобы сделать текст и фон одного цвета, что сделало бы текст невидимым и заставило бы пользователя перезагрузить компьютер. Если это произойдет, по умолчанию будет установлен серый фон с коричневым текстом. [ необходима цитата ]

В режиме CP/M можно запустить MBASIC , выпуск Microsoft BASIC-80 для CP/M. По сравнению с собственным режимом BASIC 7.0, MBASIC немногословен и ограничен в своих возможностях, требуя использования комбинаций клавиш в стиле терминала для редактирования строк программы или перемещения текстового курсора и не имея никаких звуковых или графических функций. Более того, Commodore BASIC имеет 40-битную плавающую точку, что служит промежуточным звеном между 32-битной плавающей точкой MBASIC и 64-битными переменными двойной точности. MBASIC также предлагает всего 34 КБ свободного пространства для программ против приблизительно 90 КБ в BASIC 7.0. [ необходима цитата ]

CP/M CBIOS (часть CP/M, которая взаимодействует с оборудованием) не взаимодействует напрямую с оборудованием, как в большинстве реализаций CP/M; вместо этого она вызывает процедуры ядра для обработки прерываний и ввода-вывода — когда необходимо использовать ядро, Z80 использует процедуры в $FFD0 - $FFEF для передачи данных параметров в 8502, который затем активируется, а Z80 деактивируется. После завершения выполнения процедуры ядра управление возвращается Z80. [ необходима цитата ] Сообщалось, что программист, отвечающий за портирование CP/M на C128, намеревался напрямую взаимодействовать с оборудованием через CBIOS на машинном языке Z80, но столкнулся с большими трудностями с микросхемами VDU, поскольку они были склонны к перегреву и самоуничтожению. VDU также претерпел многочисленные изменения в аппаратном обеспечении, пока C128 находился в стадии разработки, и программист CP/M не смог заставить свой код работать должным образом, поэтому команда инженеров C128 вместо этого попросила его просто переписать CBIOS для передачи вызовов функций в 8502. [18] [19]

Режим CP/M сильно отличается от операционных сред, знакомых пользователям Commodore. В то время как Commodore DOS встроен в ПЗУ дисководов Commodore и обычно доступен через BASIC, CP/M требует использования загрузочной дискеты и требует ввода кратких команд, унаследованных от платформ мини-компьютеров . Программам CP/M, как правило, не хватает дружественной пользователю природы большинства приложений Commodore.

С64

Фотография 1980-х годов, показывающая установку C128 с двумя дисководами и двумя мониторами, отображающими независимые экраны на 40 и 80 столбцов. Многие пользователи продолжали использовать 1541, унаследованный от их системы C64, в качестве второго диска.

Благодаря использованию оригинального C64 BASIC и Kernal ROM в полном объеме (всего 16 КБ) C128 достигает почти 100-процентной совместимости с Commodore 64. Доступ к режиму C64 можно получить тремя способами:

  1. Удерживайте клавишу с логотипом Commodore во время загрузки.
  2. Ввод GO 64команды и последующий ответ Yна ARE YOU SURE?приглашение в BASIC 7.0. [20]
  3. Загрузка с подключенным картриджем C64.

Заземление линий /EXROM и/или /GAME порта картриджа приведет к автоматическому запуску компьютера в режиме C64. Эта функция точно дублирует поведение C64, когда картридж (например, Simons' BASIC ) подключен к порту и устанавливает любую из этих линий, но, в отличие от настоящего C64, где действие изменения карты памяти этих линий реализовано непосредственно на аппаратном уровне, код запуска прошивки Z80 C128 опрашивает эти линии при включении питания, а затем переключает режимы по мере необходимости. Картриджи C128 в собственном режиме распознаются и запускаются ядром, опрашивающим определенные места на карте памяти. [ необходима цитата ]

Режим C64 почти точно дублирует функции аппаратного C64. MMU, Z80 и IEC burst mode отключены в режиме C64, однако все остальные аппаратные функции C128, включая VDU и режим 2 МГц, по-прежнему доступны. Расширенные клавиши клавиатуры C128 могут быть прочитаны из машинного языка, хотя процедуры ядра распознают только клавиши, которые существуют на C64. Несколько игр способны определять, работает ли C128, и переключаться в режим 2 МГц во время вертикального обратного хода для более высокой производительности. [ необходима цитата ]

На североамериканских C128 в режиме C64 даже ПЗУ символов (шрифтов) отличается от режима C128. Ранние прототипы C128 имели одно ПЗУ с немного улучшенным набором символов по сравнению с C64. Но некоторые программы C64 считывают ПЗУ символов как данные и по разным причинам не работают на C128. Таким образом, C128 получил ПЗУ символов двойного размера, которое обеспечивает шрифт C128 в режиме C128 и шрифт C64 в режиме C64. Международные модели C128 используют немодифицированный шрифт C64 в обоих режимах, поскольку вторая половина ПЗУ символов вместо этого выделена для международного шрифта (содержащего такие вещи, как акцентированные символы или немецкие умлауты ). [ необходима цитата ]

Некоторые из немногих программ C64, которые не работают на C128, будут работать правильно, если нажать клавишу (или клавишу ASCII/National на международных моделях C128). Это связано с большим встроенным портом ввода-вывода ЦП C128. В то время как клавиша, имеющаяся на C64 и C128, представляет собой просто механическую защелку для левой клавиши, клавишу на C128 можно считать через встроенный порт ввода-вывода 8502. Несколько программ C64 путаются из-за этого дополнительного бита ввода-вывода; удержание клавиши в нажатом положении приведет к тому, что линия ввода-вывода перейдет в низкий уровень, что соответствует конфигурации C64 и решит проблему. [ необходима цитата ]⇪ Caps LockSHIFT LOCK⇧ Shift⇪ Caps Lock⇪ Caps Lock

Несколько программ C64 записывают в $D030 (53296), часто как часть цикла инициализации регистров микросхемы VIC-II . Этот отображенный в памяти регистр, не используемый в C64, определяет частоту системных часов. Поскольку этот регистр полностью функционален в режиме C64, непреднамеренная запись может испортить 40-колоночный дисплей, переключив ЦП на частоту 2 МГц, при которой видеопроцессор VIC-II не может выдавать согласованное изображение. К счастью, немногие программы страдают от этого недостатка. В июле 1986 года в издании COMPUTE!'s Gazette была опубликована программа ввода, которая использовала эту разницу, используя прерывание растра для включения быстрого режима при достижении нижней части видимого экрана, а затем отключала его, когда рендеринг экрана начинался снова сверху. Используя более высокую тактовую частоту во время периода вертикального пустого интервала , поддерживается стандартное видеоотображение при увеличении общей скорости выполнения примерно на 20 процентов. [21] [22]

В некоторых программах C64 отсутствовали звуковые эффекты и музыка, поскольку на C64 страница памяти SID-чипа $D4xx также была зеркалирована на страницах $D5xx, $D6xx и $D7xx, тогда как на C128 она была доступна только через страницу $D4xx. Это не распространенная проблема, поскольку справочное руководство C64 описывает только регистры в $D4xx подробно, описывая $D5xx-$D8xx просто как "ОБРАЗЫ SID", что делает большинство программ, обращающихся к ним через страницу $D4xx, и, следовательно, воспроизводит звук, как и предполагалось на C128. [ необходима цитата ]

Простой способ отличить аппаратный C64 от C128, работающего в режиме C64, обычно используемого из работающей программы, — это записать значение, отличное от $FF (255)адреса памяти $D02F (53295) , регистра, который используется для декодирования дополнительных клавиш C128 (цифровой клавиатуры и некоторых других клавиш). На C64 эта ячейка памяти всегда будет содержать значение, $FFнезависимо от того, что в нее записано, но на C128 в режиме C64 значение ячейки — отображаемого в память регистра — может быть изменено. Таким образом, проверка значения ячейки после записи в нее покажет фактическую аппаратную платформу. [ необходима цитата ]

Настройка ОЗУ

Для обработки относительно больших объемов ПЗУ и ОЗУ (в десять раз больше, чем у 8502)64 КБ адресного пространства) C128 использует чип MMU 8722 для создания различных карт памяти, в которых различные комбинации RAM и ROM будут отображаться в соответствии с битовыми шаблонами, записанными в регистр конфигурации MMU по адресу памяти $FF00 . Еще одной функцией блока управления памятью является возможность перемещения нулевой страницы и стека . [ необходима цитата ]

Хотя теоретически C128 может поддерживать 256k RAM в четырех блоках, PCB не имеет возможности добавить эту дополнительную RAM, и MMU фактически не может получить доступ к более чем 128k. Поэтому, если MMU запрограммирован на доступ к блокам 2 или 3, все, что получится, — это зеркало RAM в блоках 0 и 1. [ необходима цитата ]

Поскольку регистры ввода-вывода и системные ПЗУ могут быть свободно отключены или включены, а также могут быть размещены в любом банке ОЗУ, а VIC-II настроен на использование любого банка для своего пространства памяти, возможно до 256 конфигураций памяти, хотя подавляющее большинство из них бесполезны (например, возможны неработающие комбинации, такие как ПЗУ ядра в банке 0 и регистры ввода-вывода в банке 1). Из-за этого оператор BANK в BASIC позволяет пользователю выбрать 15 наиболее полезных расположений, причем по умолчанию при включении питания используется банк 15. Это значение по умолчанию помещает системные ПЗУ, регистры ввода-вывода и текст программы BASIC в блок 0, а блок 1 используется переменными программы BASIC. Текст и переменные программы BASIC могут простираться вплоть до $FFEF . Но поскольку блок 0 содержит ПЗУ и регистры ввода-вывода, начиная с $4000 , BASIC использует внутреннюю процедуру переключения для чтения текста программы выше $3FFF . [ необходима цитата ]

Верхний и нижний 1k RAM ( $0$3FF и $FF00 - $FFFF ) являются «общей» RAM, видимой из обоих блоков. MMU позволяет расширять любой из них с шагом до 16k. Диапазон $0$3FF содержит нулевую страницу и стек, а $FF00 - $FFFF содержит регистры MMU и векторы сброса. Эти области всегда являются общими и не могут быть переключены на необщее RAM. Общее RAM всегда является противоположным банком от того, который в данный момент используется CPU, поэтому, если выбран банк 0, любое чтение или запись в общее RAM будет ссылаться на соответствующие ячейки в банке 1 и наоборот. VIC-II можно настроить на использование любого банка RAM, а оттуда — его обычного окна 16k. В то время как на C64 VIC-II может видеть только символьное ПЗУ в банках 2 и 4 своего пространства памяти, C128, с другой стороны, позволяет включать или отключать символьное ПЗУ для любого банка VIC-II через регистр в $1 . Кроме того, есть два набора цветного ОЗУ — один видимый для ЦП, другой для VIC-II, и пользователь может выбрать, какой чип что видит. [ необходима цитата ]

В режиме CP/M префикс сегмента программы и область переходной программы находятся в банке 1, а регистры ввода-вывода и системный код CP/M — в банке 0. [ необходима ссылка ]

Оперативная память C128 может быть расширена со стандартных 128 КБ до 256, 512 или даже 1024 КБ, либо с помощью коммерческих модулей расширения памяти, либо путем создания их на основе схем, доступных в Интернете. [23]

Модули расширения RAM компании Commodore используют внешний контроллер DMA 8726 для передачи данных между RAM C128 и RAM в модуле расширения. [ необходима ссылка ]

С128Д

Commodore 128D на выставке в Музее Боло , Федеральная политехническая школа Лозанны , Швейцария
Импульсный блок питания Commodore 128DCR , оснащенный 60-мм вентилятором охлаждения

В конце 1985 года Commodore выпустила новую версию C128 с переработанным шасси, напоминающим Amiga 1000. Названная Commodore 128D, эта новая европейская модель имела пластиковое шасси с ручкой для переноски сбоку, встроенный дисковод 1571 в основное шасси, замененную встроенную клавиатуру на съемную и добавленный вентилятор охлаждения . Клавиатура также имела две складные ножки для изменения угла печати. ​​[24]

C128 был выпущен в Великобритании 25 июля 1985 года [25] , а в Северной Америке — в ноябре 1985 года [26].

По словам Билла Херда, руководителя группы по аппаратному обеспечению (также известной как «C128 Animals»), C128D был готов к производству в то же время, что и обычная версия. Работа над выпуском двух моделей одновременно увеличила риск для своевременной поставки и была очевидна в том, что основная печатная плата имела большие отверстия в критических секциях для поддержки корпуса C128D и обычного корпуса одновременно. [ необходима цитата ]

В конце 1986 года Commodore выпустила версию C128D в Северной Америке и некоторых частях Европы под названием C128DCR, CR означает «сниженная стоимость». Модель DCR имеет штампованный стальной корпус вместо пластиковой версии C128D (без ручки для переноски), модульный импульсный блок питания, аналогичный блоку питания C128D, сохранивший съемную клавиатуру и внутренний дисковод 1571 той модели. Ряд компонентов на материнской плате были объединены для снижения производственных затрат, и в качестве дополнительной меры по снижению затрат был удален охлаждающий вентилятор , который был установлен на блоке питания модели D. Однако были сохранены монтажные положения на субшасси блока питания, а также две точки подключения постоянного тока 12 В на печатной плате блока питания для питания вентилятора. Монтажное положение C128DCR предназначено для 60-мм вентилятора. [ необходима цитата ]

Значительным усовершенствованием, представленным в модели DCR, стала замена контроллера видеодисплея 8563 (VDC) на более технически продвинутый 8568 VDC и оснащение его 64 КБ видеопамяти — максимальный объем, адресуемый устройством. Четырехкратное увеличение видеопамяти по сравнению с установленной в «плоском» C128 позволило, среди прочего, поддерживать несколько текстовых экранов для поддержки настоящей оконной системы или генерировать графику с более высоким разрешением и более гибкой цветовой палитрой. Немногие коммерческие программы использовали эти возможности. [ необходима цитата ]

C128DCR оснащен новыми ПЗУ, названными "ПЗУ 1986 года", так названными из-за даты авторских прав, отображаемой на экране баннера при включении питания. Новые ПЗУ устраняют ряд ошибок , которые присутствовали в оригинальных ПЗУ, включая печально известную ошибку на единицу в таблице декодирования клавиатуры, в которой символ оставался строчным, когда был активен. Некоторое программное обеспечение будет работать только на DCR из-за зависимостей от расширенных аппаратных функций компьютера и пересмотренных ПЗУ. [27]Q⇪ Caps Lock

Несмотря на улучшенные возможности DCR в области видео RGB, Commodore не улучшил BASIC 7.0 возможностью манипулировать графикой RGB. Управление VDC в графическом режиме по-прежнему требует использования вызовов примитивов ROM редактора экрана или их эквивалентов на языке ассемблера [28] или использования сторонних расширений языка BASIC, таких как " BASIC 8 " от Free Spirit Software, который добавляет команды графики VDC высокого разрешения в BASIC 7.0 . [ требуется цитата ]

Эффективность рынка

К январю 1987 года Info сообщил, что «Все эти слухи о неизбежной смерти C128 могут иметь под собой некоторые основания». Заявив, что Commodore хотела перенаправить ресурсы на увеличение производства 64C и его ПК-клонов, журнал заявил, что «последние слова в Интернете говорят о том, что последний C128 сойдет с конвейеров в декабре 1987 года». [29] Compute! заявил в 1989 году: «Если вы купили свой 128 под впечатлением, что специфическое для 128 программное обеспечение будет в изобилии и быстро появится, вы, вероятно, были весьма разочарованы. Одним из главных преимуществ 128 является его полная совместимость с 64, что больше работает против 128, чем за него». [27] Поскольку 128 мог запускать практически все программное обеспечение 64, а домашние компьютеры следующего поколения 32/16 бит — в первую очередь Commodore Amiga и Atari ST — представляли собой новейшие технологии, появилось относительно немного программного обеспечения для собственного режима C128 ( вероятно , порядка 100–200 коммерческих названий, плюс обычная доля программ общественного достояния и журнальных программ ), что привело к тому, что некоторые пользователи пожалели о своей покупке. [30] Хотя в период с 1985 по 1989 год было продано в общей сложности 4 миллиона единиц C128, его популярность меркла по сравнению с популярностью его предшественника.

Некоторые программы для C64, такие как Bard's Tale III и Kid Niki, работали в режиме 128 без указания этого в документации, используя автозагрузку и более быстрый доступ к диску 1571. [31] Некоторые текстовые приключения Infocom использовали преимущества 80-колоночного экрана и увеличенного объема памяти. Некоторые игры для C64 были портированы в собственный режим, например Kikstart 2 и The Last V8 от Mastertronic , у которых были отдельные версии для C128, и Ultima V: Warriors of Destiny от Origin Systems , которые использовали дополнительную оперативную память для музыки, если работали на C128. Star Fleet I: The War Begins от Interstel имели отдельные версии и использовали преимущества 80-колоночного дисплея на C128. Однако подавляющее большинство игр просто запускались в режиме C64, поскольку немногие разработчики использовали преимущества собственной производительности C128. [32]

Напротив, многие названия программного обеспечения для повышения производительности C64 были портированы на C128, включая популярные серии PaperClip и Paperback Writer. [33] Это программное обеспечение использовало дополнительную память, экран на 80 столбцов, улучшенную клавиатуру и жесткие диски большой емкости для предоставления функций, которые считались необходимыми для использования в бизнесе. [34] Благодаря своему продвинутому языку программирования BASIC, совместимости с CP/M и « удобным для пользователя » собственным пакетам программного обеспечения, таким как Jane , Commodore попыталась создать для C128 рынок недорогих бизнес-устройств, аналогичный своей стратегии с Plus/4 , даже дистанцировавшись от лейбла домашних компьютеров, назвав C128 «Персональным компьютером» на корпусе. [35] [36] Примечательно, что C128 был первым компьютером Commodore, рекламировавшим использование Microsoft BASIC , где имя Microsoft было бы конкурентным преимуществом. [ необходима цитата ]

Люди, которым нужны были бизнес-машины, покупали клоны IBM PC почти исключительно к моменту выпуска C128. Доступность недорогих совместимых с IBM компьютеров, таких как Leading Edge Model D и Tandy 1000 , которые в некоторых случаях продавались по цене ниже полной системы C128, сорвала стратегию Commodore в области компьютеров для малого бизнеса . [ требуется ссылка ] Существовала профессиональная программа САПР Home Designer от BRiWALL, [37] но, опять же, большая часть этой работы была сделана на ПК к эпохе C128. Главной причиной того, что C128 все еще продавался довольно хорошо, вероятно, было то, что это была гораздо лучшая машина для любительского программирования, чем C64, а также она была естественной последующей моделью для владельцев, которые вложили значительные средства в периферийные устройства и программное обеспечение C64. [ оригинальное исследование? ]

Но в конечном итоге C128 не смог конкурировать с новыми 16/32-битными системами, которые превзошли его и остальную часть его 8-битного поколения почти по всем параметрам. Когда C128(D/DCR) был снят с производства в 1989 году, сообщалось, что его производство стоило почти столько же, сколько Amiga 500 , хотя C128D пришлось продавать на несколько сотен долларов дешевле, чтобы сохранить нетронутым маркетинговый имидж Amiga класса high-end. [ необходима цитата ]

Бил Херд заявил, что изначально цели разработки C128 не включали 100% совместимость с C64. Некоторая форма совместимости всегда подразумевалась после того, как к Херду обратилась на презентации Plus/4 женщина, которая была разочарована тем, что образовательный программный пакет, написанный ею для C64, не будет работать на новом компьютере Commodore, но когда отдел маркетинга Commodore узнал об этом, они независимо объявили о полной совместимости. Херд назвал причиной включения процессора Z80 в 128 обеспечение этого заявления о «100% совместимости», поскольку поддержка картриджа Z80 C64 означала бы, что C128 поставляет дополнительное питание в порт картриджа. Он также заявил, что видеочип VDC и Z80 были источниками проблем во время проектирования машины. Херд добавил, что «я ожидал, что C128 будет продаваться только около года, мы посчитали, что пара миллионов будет неплохой и, конечно, это не подорвет Amiga или даже C64». [32] После того, как Commodore впервые подняла цену на 64, выпустив в 1986 году модернизированную модель 64C, прибыль от каждой проданной модели 64C, как сообщается, была намного больше, чем от C128. [38]

Технические характеристики

Смотрите также

Ссылки

  1. ^ "Commodore 128 (платформа)".
  2. Мэтьюз, Ян (11 июля 2003 г.). «Commodore 128: Самый универсальный 8-битный компьютер из когда-либо созданных». commodore.ca . Архивировано из оригинала 26 июля 2003 г. . Получено 28 декабря 2020 г. .
  3. ^ Беннетт, Крис. "Новые компьютеры на выставке CES" (PDF) . Архивировано из оригинала (PDF) 22 октября 2012 г. . Получено 13 июля 2011 г. .
  4. ^ "Commodore 128D computer". www.oldcomputers.net . 8 мая 2016 . Получено 28 декабря 2020 .
  5. ^ "Commodore 128D". Архивировано из оригинала 24 июля 2011 года . Получено 16 февраля 2011 года .
  6. ^ "C128 System Guide – 9.5 ПЕРЕМЕЩЕНИЕ КУРСОРА В РЕЖИМЕ C64". commodore.ca . Получено 8 августа 2016 г. .
  7. ^ Уэйт, Митчелл; Лафоре, Роберт В.; Вольпе, Джерри (1982). Официальная книга для Commodore 128. HW Sams. ISBN 9780672224560Цифровая клавиатура (цифровые клавиши, сгруппированные вместе, как на калькуляторе) полезна для тех, кто вводит большие объемы числовых данных, но эта функция отсутствовала на Commodore 64. Поскольку многие владельцы Commodore 64 тратили часы на ввод программ на машинном языке в виде длинных списков чисел, эта функция часто была востребована.
  8. Уэйт, Лафоре и Вольпе 1982: «...они делают C128 более привлекательным для тех известных разработчиков бизнес-программного обеспечения, которые привыкли работать с более традиционными раскладками клавиатуры».
  9. ^ Исходный код Commodore CP/M и руководство программиста.
  10. ^ «Plus/4 и C-16: разочаровывающе посредственно» (PDF) .
  11. ^ «Порт Commodore; предварительный просмотр принтеров Plus 4, Amiga и Alphacom».
  12. ^ "C128 System Guide – Appendix I". Commodore.ca. Архивировано из оригинала 31 мая 2012 года . Получено 18 апреля 2012 года .
  13. ^ Уэйт, Лафоре и Вольпе 1982
  14. ^ «Отсутствующее звено раскрыто». RUN . № Специальный выпуск 2. 1986. С. 66–68.
  15. ^ Симмондс и Борден 1986, стр. 84.
  16. ^ "Руководство пользователя GW-BASIC".
  17. ^ Compute! Апрель 1985 г.
  18. ^ "Почему Commodore C128 работает плохо при запуске CP/M?". Stack Exchange .
  19. ^ "Supercharging CP/M". Программисты C128 CP/M, желающие добавить или изменить функции операционной системы, должны попытаться внести изменения в BIOS. Во-первых, исходный код BIOS доступен, но недоступен для BDOS или CCP.
  20. ^ "C128 System Guide – 2.2.1 MODE SWITCHING CHART". commodore.ca . Получено 8 августа 2016 г. .
  21. ^ jul86-64 РежимСкорость (A)
  22. ^ jul86-64 РежимСкорость (B)
  23. ^ Расширения памяти для Commodore 128
  24. ^ "Commodore 128D". История вычислений . 9 января 2024 г. Получено 9 января 2024 г.
  25. ^ "Специальная статья: С днем ​​рождения!". Popular Computing Weekly . 1 мая 1987 г. стр. 14-18 (18).
  26. ^ "1985 Index" (PDF) . Computer Entertainer . Том 4, № 10. Январь 1986. С. 6.
  27. ^ ab Randall, Neil (июнь 1989). "Только 128". Compute! . Том 11, № 6 #109. стр. 54 . Получено 11 ноября 2013 .
  28. Уоллес, Луис Р.; Дарус, Дэвид П. (февраль 1986 г.). «Графика сверхвысокого разрешения — прорыв на вашем C-128». RUN . Том 3, № 2 #26. С. 34–39.
  29. ^ "The Rumor Mill". Информация . № 13. Январь–февраль 1987. С. 52.
  30. ^ "The Mail Run". RUN . Том 3, № 11 #35. Ноябрь 1986. С. 132–133.
  31. ^ Рэндалл, Нил (октябрь 1988 г.). «Больше игр». Compute! . Том 10, № 10 #101. стр. 47 . Получено 10 ноября 2013 г. .
  32. ^ ab В память о Commodore C128 Архивировано 29 ноября 2014 г. на Wayback Machine
  33. ^ "Digital Solutions Inc" . Commodore Magazine (Реклама). Том 8, № 7. Июль 1987 г. стр. 2.
  34. Гуэрра, Боб (март 1986 г.). «Производительность плюс для C-128». RUN . Том 3, № 3 #27. С. 24–36.
  35. Кевелсон, Мортон (август 1985 г.). «Церемонии открытия Commodore 128». Ahoy! № 20. стр. 29–34.
  36. ^ "Новый Commodore PC". RUN . Том 2, № 3 № 15. Март 1985. С. 6.
  37. ^ "Briwall". RUN (Реклама). Том 6, № 4 #64. С. 46.
  38. ^ Лимон, Шелдон (февраль 1987 г.). «Микроскоп». Compute! . Том 9, № 2 #81. стр. 24 . Получено 9 ноября 2013 г. .
  39. ^ Wiese, William Jr (июль 1986 г.). "The Commodore 128 Personal Computer System". BYTE . Vol. 11, no. 7. McGraw-Hill . pp. 269–278. C-128 CP/M использует процессоры Z80 и 8502. Z80 выполняет большинство функций BIOS CP/M.

Библиография

Внешние ссылки