Производитель | Commodore Business Machines (CBM) |
---|---|
Тип | Расширение памяти |
Дата выпуска | 1986 ( 1986 ) |
Прекращено | 1990 ( 1990 ) |
Процессор | MOS 8726 REC (контроллер расширения ОЗУ) DMA ASIC |
Память |
|
Хранилище | Микросхемы DRAM 4164 64kx1 или 41256 256kx1 |
Commodore RAM Expansion Unit (REU) — это ряд внешних модулей оперативной памяти .
На момент появления домашнего компьютера Commodore 128 было объявлено о двух REU для этой модели: REU 1700 (128 КБ ) и REU 1750 ( 512 КБ ). Позже Commodore представила третью модель для своей модели Commodore 64 : 1764 ( 256 КБ ) [1]
Необходимость в REU возникла, когда руководство Commodore решило не использовать финальную версию пользовательского блока управления памятью (MMU), который затем ограничил размер памяти, несмотря на раннее обсуждение большей карты памяти. Инженеры, отправлявшиеся на выставку бытовой электроники (CES) 1985 года, столкнулись с листовками и рекламными щитами, рекламирующими размер памяти, который больше не поддерживался, и, наконец, высшее руководство спросило, куда будет подключаться дополнительная память (до 512 КБ ).
К моменту проведения выставки CES 1985 года в Чикаго инженеры смогли продемонстрировать вращающийся земной шар в качестве демонстрации прямого доступа к памяти (DMA) с помощью новых блоков REU.
Аппаратное обеспечение REU было разработано Фрэнком Палиа, а специализированная интегральная схема контроллера расширения RAM (REC) была разработана Виктором Андраде. Фред Боуэн и Терри Райан адаптировали KERNAL и BASIC C128 для работы с REU изначально, а Хедли Дэвис написал демонстрационную версию вращающегося глобуса, которая была впечатляющим примером анимации в середине 1980-х годов.
Хотя C128 мог получить доступ к более чем 64 КБ ОЗУ через переключение банков , доступ к памяти внутри REU можно было получить только с помощью передач памяти (STORE/LOAD/SWAP/COMPARE) между основной памятью и памятью REU. Кроме того, встроенный в C128 BASIC 7.0 имел три оператора, STASH
, FETCH
, и SWAP
, для хранения и извлечения данных из REU.
Официально на C128 поддерживались только 1700 и 1750. Модель 256 КБ , 1764, была выпущена для C64 в то же время. Между тремя моделями были лишь незначительные различия. Оригинальный блок питания C64 не мог поддерживать дополнительную нагрузку, представленную 1764, поэтому был включен блок питания C64 на 2,5 ампера.
Модель 1700 использует шестнадцать микросхем DRAM 4164 64kx1 , модель 1764 имеет восемь микросхем DRAM 41256 256kx1, а модель 1750 имеет шестнадцать микросхем DRAM 41256.
На практике разница между 1764 и более ранними моделями мало влияла на совместимость, и люди успешно использовали 1700 и 1750 с C64, а 1764 с C128, хотя стандартный блок питания C64 был недостаточен для надежной обработки нагрузки любого из них. Некоторые дилеры разделяли 1764 и блок питания, чтобы продавать блок питания пользователям C64 и/или модернизировать 1764 до 512 КБ .
Модель REU 1750 может быть модифицирована для поддержки до 2 МБ памяти путем установки 2 дополнительных микросхем для переключения банков. В этой модификации есть только один источник несовместимости программного обеспечения: программное обеспечение, которое не устанавливает биты в $DF06 на одно и то же значение все время или устанавливает биты на банк 512 кб, который еще не установлен, не будет работать. [2]
В конце 1980-х годов наблюдался дефицит DRAM, поэтому 1750-е были редкими и дорогими. Однако было сравнительно легко модернизировать 1700 или 1764 до 512 КБ . Несколько фирм делали это на коммерческой основе, либо продавая модернизированные блоки, либо модернизируя блоки, поставляемые заказчиками.
В начале 1990-х годов на различных онлайн-сервисах появились схемы самостоятельной модификации, позволяющие увеличить емкость REU до одного мегабайта и выше.
Печатная плата 1700-х годов была идентична плате 1750-х годов, а дорожка с маркировкой J1 указывала размер используемых микросхем. На 1750 и 1764 годах эта дорожка была перерезана.
У 1700 и 1750 был резистор в позиции R4, который, по словам инженера Commodore Фреда Боуэна, компенсировал тонкие различия во времени в порту расширения на C64 и C128. У 1764 этого резистора не было. Боуэн и другие инженеры CBM рекомендовали не использовать 1764 с C128, если резистор не был добавлен, или 1700/1750 с C64, если резистор не был удален.
Проверить наличие 1750 можно было, прочитав бит 4 адреса памяти , который был равен 1 на 1750 и 0 на 1700 или 1764. Однако, поскольку эта процедура не различала 1700 и 1764, для решения этой проблемы программисты записывали данные в оперативную память REU, а затем считывали их, чтобы узнать объем установленной памяти.$DF00
Небольшой процент программного обеспечения использовал REU. Как и другие дополнительные продукты Commodore , их относительно небольшая установленная база по сравнению с огромным количеством C64 и C128 заставляла разработчиков программного обеспечения не спешить вкладывать много времени и усилий в поддержку REU. Отсутствие коммерческой поддержки удерживало продажи ниже, чем они могли бы быть в противном случае. Благодаря своей высокой скорости по сравнению с дисководами Commodore или даже с коммерчески доступными жесткими дисками, REU получили поддержку в сообществе Commodore BBS . Такие программы, как Color64, требовали REU для минимизации времени загрузки при переключении между разделами BBS. [3]
REU поставлялись с программным обеспечением для использования дополнительной памяти в качестве RAM-диска , но совместимость RAM-диска с коммерческим программным обеспечением различалась, поскольку некоторое коммерческое программное обеспечение в значительной степени зависело от различных особенностей дисковода Commodore 1541. Кроме того, многие коммерческие программы просто перезаписывали пространство памяти, занимаемое программным обеспечением RAM-диска.
Операционная система GEOS имела встроенную поддержку REU как RAM-диска , как и версия CP/M для C128 , и некоторые программы копирования дисков использовали REU для облегчения высокоскоростного копирования с помощью одного диска. GEOS, а также другие программы даже использовали REU для быстрой передачи памяти в основной памяти хост-машины, сохраняя блок памяти в REU и затем извлекая его обратно в другое место. При использовании этого метода только фактические данные, которые должны были быть переданы, должны были перемещаться по шине данных машины — в отличие от обычного метода, при котором передачу выполнял центральный процессор компьютера , таким образом тратя не менее трех четвертей емкости шины на выборку инструкций и только одну четверть или меньше на данные полезной нагрузки.