Быстрый загрузчик - Fast loader

Image
Скриншот программы, загружаемой с диска с помощью быстрого загрузчика

Быстрый загрузчик это программа для домашнего компьютера , таких как Commodore 64 или ZX Spectrum , что ускоряет скорость загрузки файлов с дискеты или компакт - кассеты .

Дискеты

Быстрые загрузчики возникли из-за несоответствия между реальной скоростью, с которой дисководы гибких дисков могли передавать данные, и скоростью, обеспечиваемой стандартными процедурами операционной системы . Это несоответствие наиболее ярко проявилось на Commodore VIC-20 и 64 . В то время как более ранняя серия Commodore PET использовала стандартную параллельную шину IEEE-488 , она была заменена специальной последовательной шиной Commodore на VIC-20. Последовательная шина должна была быть почти такой же быстрой, как и ее предшественник, из-за использования 6522 VIA в качестве аппаратного сдвигового регистра как на накопителе, так и на компьютере. Однако в 6522 были обнаружены аппаратные ошибки, которые мешали стабильной работе этой функции. В результате процедуры KERNAL ROM были поспешно переписаны для передачи одного бита за раз с использованием протокола медленного программного квитирования .

Хотя C64 заменил 6522 VIA двумя чипами 6526 CIA , которые не страдали от этой ошибки, у сопутствующего диска 1541 все еще был 6522 VIA. Commodore решила не перепроектировать аппаратное обеспечение 1541, также для того, чтобы сохранить обратную совместимость с периферийными устройствами VIC-20; Однако это произошло за счет скорости. Из-за протокола передачи дисководы Commodore 1540 и 1541 вскоре приобрели репутацию чрезвычайно медлительных. Только с появлением компьютера Commodore 128 и дискового накопителя Commodore 1571 первоначальный план был реализован, и был использован аппаратный сдвиговый регистр, что снизило потребность в специальных устройствах быстрой загрузки.

Вскоре после выпуска C64 некоторые проницательные программисты поняли, что последовательные процедуры KERNAL для обработки битов Commodore были излишне медленными. Поскольку ЦП в C64 работал примерно с той же скоростью, что и в дисководе 1541, было достаточно синхронизировать только в начале каждого байта , а не в каждом отдельном бите . Более того, этот метод передачи позволял отправлять два бита одновременно: один по стандартной DATAлинии, а другой по CLKлинии (которая обычно использовалась для установления связи). На C64 это требовало очень тщательной синхронизации, чтобы избежать помех от прерываний и от графического чипа VIC-II , который мог «украсть» циклы процессора. Некоторые быстрые загрузчики отключили прерывания и по этой причине закрывали экран. Быстрый загрузчик обычно «вклинивается» в вектор at , таким образом перехватывая любые вызовы подпрограммы KERNAL . Затем быстрый загрузчик передает необходимый код в ОЗУ накопителя и приказывает его выполнение, а затем принимает файл, отправленный измененным кодом передачи. В зависимости от конкретной природы используемых подпрограмм скорость загрузки может быть улучшена в пять раз. LOAD $0330LOAD

Этот метод использовался для некоторых из многих созданных систем с быстрой загрузкой (таких как JiffyDOS). Другие были просто более эффективны при вводе-выводе и обработке файлов, предлагая улучшения от незначительных до хороших. Другие продукты добавили параллельное оборудование.

Различные компании-разработчики программного обеспечения выпускали устройства быстрой загрузки для C64, обычно в виде картриджей . В США , наверное, самым популярным из таких картриджей был Epyx FastLoad . Большинство картриджей с быстрой загрузкой также включают в себя другие функции, упрощающие использование. Встроенная реализация DOS Wedge от Commodore была включена в большинство картриджей с быстрой загрузкой. Мониторы машинного языка , редакторы дисков и различные удобные команды для Commodore BASIC также были обычным дополнением. Некоторые картриджи с быстрой загрузкой были очень сложными, включая кнопку сброса , возможность «заморозить» и простой встроенный графический интерфейс . Final Cartridge III был, пожалуй, самым успешным в этом жанре. Несколько коммерческих быстрых загрузчиков, в первую очередь JiffyDOS CMD , не работали с картриджами, а заменили KERNAL ROM в C64 и DOS ROM в 1541. Хотя их было сложнее установить, они предлагали значительно улучшенную совместимость, будучи почти незаметными. к программному обеспечению, работающему на машине. Картридж, загрузчик RAM Action Replay MK6 загружает программу из 202 блоков примерно за 9 секунд. Его загрузчик Warp работает в 25 раз быстрее, но программы могут быть загружены с помощью загрузчика, сохраненного на диск, когда картридж отсутствует. В то время как устройство быстрой загрузки ARMK6 было совместимо с большинством программного обеспечения, было известно, что Final Cartridge III часто дает сбой, поэтому программы приходилось загружать в обычном режиме C64, деактивируя картридж, что делало его более или менее бесполезным.

Многие коммерческие программы для C64, особенно игры, содержали свои собственные процедуры быстрой загрузки на дистрибутивном носителе. Пользователь загружал с диска небольшую программу-заглушку со стандартными медленными подпрограммами, которые затем устанавливали более быстрые процедуры передачи как в компьютер, так и на диск, прежде чем переходить к загрузке остальной программы на высокой скорости. Таким образом, пользователь получает выгоду от быстрого загрузчика без необходимости покупать или знать о специальном продукте для быстрой загрузки.

Несколько популярных журналы Commodore опубликовали тип- за быстрым программное обеспечение загрузки. В апреле 1985 года Compute! опубликовал TurboDisk , быстрый загрузчик, включающий версии C64 и VIC-20. Эта программа оказалась популярной и была переиздана в июльском выпуске журнала Compute! 'S Gazette за 1985 год .

Он был напечатан еще раз в августе 1986 года, без версии VIC-20, но с несколькими сопутствующими утилитами для перемещения программы в памяти и создания программного обеспечения с автоматической загрузкой, которое использовало скорость TurboDisk . Версия Commodore 128 была также включена для тех пользователей C128, у которых все еще было 1541 дисковый накопитель.

Газета COMPUTE! Также опубликовала несколько других утилит , ускоряющих обмен данными между C64 и 1541, в том числе Turbo Copy (4-минутное копирование всего диска), TurboSave (утилита , повышающая скорость сохранения на диск) и Quick! (еще один быстрый загрузчик).

Журнал RUN опубликовал Sizzle! в декабре 1987 г. - интегрированный пакет, включающий перемещаемый быстрый загрузчик с возможностью автозагрузки.

В ноябре 1983 года компания BYTE опубликовала Loader, программное обеспечение с быстрой загрузкой на машинном языке для Apple DOS 3.3. Compute! опубликовал TurboDisk для DOS 3.3 в октябре 1986 г.

Мода на быстрые загрузчики продолжалась в эпоху Интернета. Загрузчик Krill (2009 г.) и Spindle (2013 г.) являются двумя примерами «загрузчиков IRQ» от C64 до 1541, быстрых загрузчиков, которые позволяют программам (в основном играм) сохранять свои собственные IRQ во время загрузки. С современными загрузчиками медленная скорость декодирования GCR оказалась узким местом, и все современные загрузчики имеют свои собственные оптимизированные процедуры для этого.

Кассеты

Image
Заглавный экран Invade-a-Load

Встроенные процедуры для хранения и считывания данных с кассет компакт- кассет были созданы для безопасного хранения, а не для скорости. Лучшее качество ленты в 1980-х годах позволило более эффективно хранить данные, сократив время загрузки и длину ленты.

Такие программы существовали для нескольких компьютеров, таких как Ohio Scientific Challenger . PET Rabbit был одной из таких программ для PET, а TurboTape - для Commodore Datassette . Turbo 2000 был аналогичной системой для Atari.

Speedlock - это система защиты программного обеспечения, используемая в ZX Spectrum и Amstrad CPC , написанная Дэвидом Обри-Джонсом и Дэвидом Лукером в 1983 году. Два программиста были разочарованы медленным временем загрузки системы загрузки магнитной ленты компьютера и поняли, что это будет. можно будет написать получше. Прототип простаивал около года, но наконец был приобретен Ocean Software на Decathlon Дейли Томпсона , выпущенном в конце 1984 года. Впоследствии он использовался US Gold и, в частности, Ultimate Play the Game для нескольких игр . Speedlock также был перенесен на Amstrad CPC в 1985 году.

Система использовала несколько расширенных функций архитектуры Spectrum, таких как регистр обновления памяти и инструкции ветвления четности процессора Z80 , что затрудняло создание нелегитимных копий без защиты. В ранних версиях при загрузке программы использовался набор слышимых «щелкающих» сигналов отведения. В более поздних версиях этого не было, но вместо этого был счетчик, показывающий время, оставшееся до завершения загрузки программы, аналогично показателям техника Теда и Фэрлайта .

Некоторые компании создали программное обеспечение для обхода схем защиты, включая Speedlock, с целью резервного копирования или передачи на ZX Microdrive , ZX Spectrum +3 или другие проприетарные дисковые системы.

Invade-a-Load был быстрым загрузчиком игр на кассетах, который не только ускорял загрузку блоков с ленты, но и содержал мини-игру (в данном случае клон Space Invaders ), в которую можно было играть во время ожидания. чтобы основная игра завершила загрузку. Invade-a-Load позволял пользователю играть в небольшой клон известной игры Space Invaders во время загрузки основной игры. Эта первоначальная мини-игра была загружена менее чем за минуту, обеспечивая развлечение во время ожидания загрузки самой игры, что могло занять еще пять-десять минут. По крайней мере, один раз рецензент выразил свое предпочтение Invade-a-Load самой основной игре. В основном он появлялся в играх, продаваемых в Соединенном Королевстве , поскольку к тому времени, когда он был написан, рынок Commodore в Соединенных Штатах в основном переключился на дискеты . Загрузчик был написан Ричардом Аплином для собственного использования Mastertronic . Сам загрузчик имеет авторские права 1987 года, но первые игры, в которых использовался загрузчик, появились в 1988 году. В последующие годы Mastertronic использовала загрузчик в десятках наименований. Загрузчик также запомнился саундтреком, изначально сделанным Робом Хаббардом для игры Mastertronic « Один человек и его дроид» .

В Великобритании, где цена на диск 1541 Disk Drive была недоступна для многих из целевой аудитории владельцев CBM 64, был огромный спрос на устройства быстрой загрузки для 64 игр. Одним из первых, кто использовал такой загрузчик, был Llamasoft, где классическая «Месть верблюдов-мутантов» Джеффа Минтера была представлена ​​с версией с быстрой загрузкой на одной стороне кассеты и версией с обычной загрузкой на другой. Вскоре к нам присоединились и другие производители программного обеспечения. Ocean использовал "pavloda", и настоящий прорыв произошел с программным обеспечением Novaload, которое позволяло воспроизводить экраны загрузки и музыку. «Десятиборье Дейли Томпсона» было ярким примером этого. Релизы US Gold стали печально известными тем, что в них воспроизводился Государственный гимн США и отображалась версия карты персонажей Звездно-полосатых игр во время загрузки игр. Другие известные релизы включали "Hypersports" от Imagine / Ocean, в котором были анимированные спрайты бегунов по мере загрузки игры, и два впечатляющих саундтрека от Мартина Голуэя, включая версию Chariots of Fire.

Оптические диски

В 1995 году Йоичи Хаяси из Namco Ltd. изобрел вариант техники Invade-a-Load для использования с платформами на основе оптических дисков, такими как PlayStation, и подал заявку на патент. Патент США 5718632 был выдан в феврале 1998 года и переуступлен Namco, несмотря на предшествующий уровень техники « Вторжение в загрузку» .

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

использованная литература