Коммодор DOS - Commodore DOS

Commodore DOS / CBM DOS
Список каталогов Commodore64 16.png
Вывод каталога диска в формате 1541
РазработчикCommodore International
Последний релиз10.0
Доступно ванглийский
ПлатформыMOS 6502 семья
Лицензияпроприетарный

Коммодор DOS, также известный как CBM DOS, это диск операционной системы используется с Коммодор с 8-битные компьютеры. В отличие от большинства других ДОЗЫ, которые загружаются с диска в собственный компьютер баран и выполняется там, CBM DOS выполняется внутри диска: DOS находится в ПЗУ микросхемы внутри накопителя, и запускается там одним или несколькими выделенными MOS 6502 семья Процессоры. Таким образом, передача данных между 8-битными компьютерами Commodore и их дисковыми накопителями больше напоминает локальная сеть соединения, чем типичные передачи диска / хоста.

CBM DOS версии

Известно, что существует по крайней мере семь четко пронумерованных версий Commodore DOS; в следующем списке указаны номера версий и соответствующие дисководы. Если не указано иное, диски имеют формат 5¼ дюйма. Код «lp» обозначает «низкопрофильные» накопители. Диски, номер модели которых начинается с 15, подключаются через уникальный последовательная шина IEEE-488 (шина IEC) последовательные (TALK / LISTEN) протоколы; все остальные используют параллель IEEE-488.

  • 1.0 - находится в 2040 и 3040 дисководы гибких дисков
  • 2.0 - находится в 4040 и 3040 дисководы гибких дисков
  • 2.5 - находится в 8050 дисководы гибких дисков
  • 2.6 - находится в 1540, 1541 включая тот, который встроен в SX-64, 1551, 2031 (+ "lp") и 4031 дисководы гибких дисков
  • 2.7 - находится в 8050, 8250 (+ "lp") и СФД-1001 дисководы гибких дисков
  • 3.0 - находится в 1570, внешний 1571, и 8280 дисководы гибких дисков (8280: 8 дюймов), а также 9060 и 9090 жесткие диски
  • 3.1 - находится во встроенном диске 1571 компьютеров C128DCR
  • 10.0 - находится в 1581 (3½ дюйма)

Версия 2.6 была наиболее часто используемой и широко известной версией DOS из-за ее использования в 1541 как часть C64 системы.

Примечание: обновленная прошивка для 1571 который исправил относительную ошибку файла также обозначен как V3.0. Таким образом, невозможно различить две версии, используя только номер версии.

Технический обзор

1541 каталог и типы файлов

Дискета 1541 Commodore может содержать до 144 файлов в плоском пространстве имен (без подкаталоги ); каталог хранится на зарезервированной дорожке 18, которая расположена на полпути от концентратора к краю одностороннего диска с 35 дорожками. Имя файла может иметь длину до 16 байт и теоретически уникально; Используя методы прямого доступа к структуре каталогов, можно переименовать файл в другой, хотя доступ к таким файлам может быть затруднен или невозможен. Файлы с одинаковыми именами обычно служат только для информирования или визуального управления файлами. Один популярный трюк, использованный, например, Последний картридж III, должен был добавить файлы с именем "----------------" типа DEL < в каталог, и затем файлы можно было бы перегруппировать вокруг этих строк, чтобы сформировать группы. Многие разработчики игр, варез члены группы и демосцена хакеры также использовали несколько более умных пользовательских записей в каталоге.

Имена файлов могут содержать сдвинутый пробел ($ A0), и если список каталогов просматривается из BASIC, часть имени файла за пределами $ A0 будет казаться, что символ отделен от первой части имени файла кавычками, что приведет к БАЗОВЫЙ не считать его частью полного имени файла. Эта функция может использоваться для создания записей каталога, таких как СОХРАНИТЬ ПРОГРАММУ⇧ ShiftКосмос КоммодорDUDE",8,1, который затем появится в списке каталогов как, например, 32 «ПРОГРАММА», 8,1 ПРГ.[1] Когда пользователь перемещает курсор в начало строки, набирает слово НАГРУЗКА над размером файла и нажимает ВОЗВРАЩАТЬСЯ, BASIC интерпретирует это как НАГРУЗКА «ПРОГРАММА»,8,1 ..., вызывая загрузку программы в память. Все, что находится после двоеточия или вторичного адреса, не будет выполняться, поскольку компьютер игнорирует любую команду после ЗАГРУЗКИ.[2] В качестве альтернативы пользователь может нажать ⇧ ShiftЗАПУСК / СТОП к НАГРУЗКА и ПРОБЕГ программа автоматически.[3]

Нулевой байт, встроенный в имя файла, прервет листинг после загрузки BASIC. Если есть три нулевых байта, это затрудняет перечисление через BASIC. Многие программисты на машинном языке экспериментируют с нулевыми байтами, пытаясь усложнить программистам на BASIC доступ к своему коду и вмешательство в него.

В BASIC к каталогу можно получить доступ как к неисполняемой псевдо-BASIC программе с НАГРУЗКА "$0",8 (или же НАГРУЗКА "$1",8 в случае двойного привода) с последующим СПИСОК. В первой строке есть номер строки 0 или 1 (указывающий номер диска), показывающий в обратном видео имя и идентификатор диска, а также сокращенный код версии DOS, с которой он был создан (коды различаются только в зависимости от Версии DOS используют несовместимые форматы дисков: «2A» используется в большинстве 5,25-дюймовых версий DOS, «3D» - в 3,5-дюймовых 1581). Строки после этого имеют размер файла (в дисковых блоках) в качестве псевдо "номера строки", за которым следует имя файла в кавычках и трехбуквенный код типа. Последняя строка показывает количество нераспределенных блоков на диске (опять же как псевдо «номер строки»), за которым следуют слова «BLOCKS FREE».

На Коммодор 64, вход НАГРУЗКА "$",8,1 будет заливать экран мусором вместо загрузки каталога в ОСНОВНОЕ ОЗУ. Это связано с тем, что диск назначает каталогу адрес загрузки $ 0401 (1025), что эквивалентно запуску BASIC для Commodore PET, но соответствует памяти экрана по умолчанию в C64 (начиная со второго символа в первой строке экрана).

Просмотр каталога с НАГРУЗКА "$",8 команда перезаписывает BASIC программу в памяти. В DOS Клин и различные сторонние картриджи и удлинители, такие как Epyx FastLoad, Действие Replay, и Последний картридж III разрешить просмотр каталога диска с помощью специальных команд, которые загружают каталог в экранную память, не разрушая текущую программу BASIC. Некоторые версии Commodore BASIC включают СПРАВОЧНИК или же КАТАЛОГ команда, выполняющая ту же функцию.

Поддерживаются следующие типы файлов:

SEQ
А последовательный file - это файл данных, который можно линейно читать от начала до конца. SEQ файлы обычно используются для хранения документов или текстовых файлов, созданных текстовым процессором или другим подобным редактором. Последовательный файл аналогичен плоский файл в Linux или же UNIX, в том, что он не имеет специализированной внутренней структуры. Невозможно расположить в произвольном месте в последовательном файле, поскольку нет аналога я ищу вызов ядра найден в UNIX-подобный операционные системы.
PRG
PRG файлы обычно содержат исполняемый программный код, хотя их также можно использовать для файлов данных. Первые два байта PRG читаются ядро подпрограмма "загрузки файла" и используется для определения адреса загрузки (они хранятся в прямой порядок байтов формат).
REL
Относительный файл - это вариант последовательного типа файла, в котором присутствует механизм индексации, называемый боковыми секторами, для обеспечения доступа, ориентированного на записи. Максимальный размер записей может составлять 254 байта, и адресация ведется по количественному числу, отсчитываемому от единицы, что позволяет произвольный доступ в любую часть файла.
USR
Пользовательский файл имеет внутреннюю структуру, идентичную структуре последовательного файла. Первоначальная цель Commodore для этого типа файлов заключалась в содействии разработке DOS, поскольку содержимое файла могло быть скопировано в буфер диска для выполнения микропроцессором диска. Очень немногие программы когда-либо использовали этот тип файлов. Некоторые приложения, использующие нестандартные низкоуровневые структуры дисков, сохраняют данные в формате USR, который стал считаться своего рода указанием для пользователя «оставь меня в покое, не пытайся копировать или удалять». В частности, GEOS Файлы "VLIR" отображаются как USR файлы.
DEL
Недокументированный тип файла внутреннего использования, аналогичный по структуре последовательному файлу. Создание этого типа файла должно выполняться путем непосредственного управления каталогом на диске.

Наличие звездочки (*) добавляется к типу файла в списке каталогов (например, * SEQ) указывает, что файл не был должным образом закрыт после записи. Когда приводу дана команда закрыть файл, который был открыт для записи, связанный буфер сбрасывается на диск и карта доступности блока (BAM) обновляется, чтобы точно отразить, какие блоки были использованы. Если сбой программы или другая проблема (например, когда пользователь удаляет диск при открытом файле) приводит к «потерянному файлу», также называемому «ядовитым» или «сплатным» файлом, буферы не сбрасываются и BAM не будет точно отражать использование диска, что подвергает диск риску повреждения. Ядовитый файл обычно недоступен (но может быть открыт в режиме "изменения"), и попытка использовать DOS царапать команда для удаления файла может вызвать повреждение файловой системы, например сшивание. Единственный практический метод удаления одного из этих файлов - открыть файл в режиме «изменения» (и исправить его) или проверить диск (см. DOS подтверждать команда ниже), последний, который перестраивает BAM и удаляет ссылки на подозрительные файлы из каталога. Печально известный ошибка сохранения с заменой может привести к созданию файлов splat.

* DEL - это особый тип, записанный в записи каталога на диске для файлов, которые были удалены. Такие файлы не отображаются в обычном списке каталогов, и их блоки данных и записи каталогов будут повторно использоваться файлами, которые создаются впоследствии. Некоторые служебные программы позволяют «отменить удаление» таких файлов, если их блоки данных и записи каталога еще не были перезаписаны другими файлами. Файлы DEL обычно используются для вставки разделов баннеров или комментариев в список каталогов.

Типы файлов с < после них (например, PRG <) "заблокированы" и не могут быть удалены, но могут быть открыты для чтения. Команды Commodore DOS, которая могла бы явно установить или сбросить этот статус, не существует, но было написано много сторонних утилит, позволяющих это сделать. Эти утилиты обычно считывают каталог с помощью команд прямого доступа, вносят необходимые изменения в необработанные данные, а затем записывают изменения обратно на диск.

Доступ к файлам

Доступ к файлам в первую очередь является проблемой для главного компьютера. ПЗУ ядра на компьютере содержит необходимые примитивные процедуры, необходимые для доступа к файлам, и БАЗОВЫЙ ПЗУ содержит абстракцию более высокого уровня для доступа к файлам с использованием синтаксиса BASIC. Компоненты, которые относятся к самой DOS, - это синтаксический анализ имени файла и вторичный адрес. В этом разделе для полноты картины дается обзор необходимых команд BASIC.

Открытие файла на диске Commodore влечет за собой обработку ряда параметров, которые отдаленно аналогичны процедурам открытия файлов в других средах. Поскольку DOS фактически работает в контроллере накопителя, последовательность открытия файла должна передавать накопителю достаточно информации, чтобы обеспечить однозначную интерпретацию. Типичный оператор BASIC для записи в последовательный файл будет следующим:

ОТКРЫТО 3,8,4,"0: АДРЕСНАЯ КНИГА, S, W"

Параметры, следующие за ОТКРЫТО глагол являются следующими:

3
Этот параметр, регистрационный номер, логически идентифицирует открытый файл в компьютер операционная система и аналогична дескриптор файла в UNIX-подобный операционные системы. Он никогда не отправляется на диск и, следовательно, не известен и не используется собственной операционной системой диска. Номер файла может находиться в диапазоне от 1 до 254 включительно, назначается программистом и должен быть уникальным, если одновременно открывается более одного файла. После открытия файла во всех процедурах ввода и вывода программы используется номер файла. В язык ассемблера программ, это значение часто называют LA (логический адрес), сокращение происходит от мнемонический обозначает место в памяти, где хранится номер файла. Номера файлов больше 127 заставляют систему записывать дополнительный перевод строки после каждого возврата каретки (полезно, например, для двойного интервала в документе).
8
Этот параметр, номер устройства, определяет конкретный периферийный прикреплен к компьютеру. Устройства с 0 по 3 адресуют клавиатуру, кассету с лентой, RS-232 интерфейс и видео дисплей, соответственно, все из которых напрямую управляются ПЗУ ядра. Устройства с номерами 4 и выше адресуют устройства, подключенные к периферийной шине, например принтеры или дисководы. В случае с дисководом номер устройства относится к контроллеру устройства, а не к приводному механизму (механизмам) внутри устройства. По соглашению, первый дисковый накопитель в системе имеет номер устройства 8, второй дисковод, если он присутствует, 9 и т. Д., До максимального числа 15 (когда подключено восемь дисководов). Схема номеров устройств была получена из IEEE-488 (или интерфейса общего назначения GPIB ), которая использовалась с моделями Commodore PET / CBM. В программах на ассемблере это значение часто называют FA или PA (физический адрес), опять же из мнемоники того места в памяти, где хранится номер устройства.
4
Этот параметр, дополнительный адрес, который может находиться в диапазоне от 0 до 15 включительно, относится к конкретному каналу связи, установленному с контроллером устройства, и передается устройству, когда ему поступает команда «говорить» или «слушать» на периферийной шине. Как и в случае с номером файла, вторичный адрес определяется программистом и должен быть уникальным для рассматриваемого устройства. Диапазон от 0 до 14 включительно используется для передачи данных на устройство или от устройства, тогда как 15, называемый «командным каналом», используется для выдачи команд контроллеру устройства (например, для переименования файла на диске), если устройство способно поддерживать такую ​​операцию. В дисковых накопителях вторичные адреса от 0 до 14 включительно отображаются на буферы в контроллере, таким образом устанавливая связь с конкретным файлом на определенном диске; поскольку, как уже упоминалось выше, привод не знает о регистрационный номер, он может использовать только дополнительный адрес чтобы различать несколько файлов, открытых одновременно. С другой стороны, операционная система хоста не зависит от вторичного адреса; он передается на привод при каждом доступе к файлу, но не используется хостом иным образом. В программах на ассемблере это значение часто называют SA (вторичный адрес).
КОМАНДНАЯ СТРОКА
В "0: АДРЕСНАЯ КНИГА, S, W" в документации Commodore официально упоминается как параметр командная строка и интерпретируется контроллером устройства, к которому осуществляется доступ. В случае дисковода формальная структура командной строки состоит из номера механизма привода (0:, не путать с номером устройства), имя файла (АДРЕСНАЯ КНИГА), тип файла (S, в этом примере последовательно) и режим доступа (W, открыт для записи в этом примере). На практике некоторые из этих параметров могут быть опущены. Как минимум, если файл должен быть открыт для чтения, требуется только имя файла.
Номер диска идентифицирует механизм привода, подключенный к контроллеру дискового устройства, и аналогичен номер логической единицы в SCSI контроллер, способный управлять несколькими механизмами (например, ОМТИ SASI контроллеры, которые были разработаны для работы с ST-412 /ST-506 жесткие диски в 1980-х годах). В дискетах первым механизмом является дисковод 0 :, а вторым - 1 :. Довольно распространенной практикой является опускание номера дисковода при обмене данными с одним дисководом, так как 0: это значение по умолчанию для таких устройств, но поскольку пропуск номера может вызвать несколько неясных ошибок в DOS, это не рекомендуется ( только двоеточие эквивалентно 0: и этого достаточно, чтобы избежать этих ошибок). Исключением из этого соглашения является Лейтенант Кернал подсистема жесткого диска, в которой номер диска относится к «логическим единицам» (виртуальные диски создается на одном физическом диске), что делает синтаксис типа 4: или 10: необходимым, если файл, который нужно открыть, не находится на логической единице нуля (что эквивалентно нулю механизма привода в двойном устройстве гибких дисков).

Файлы также можно загружать и сохранять в НАГРУЗКА и СПАСТИ команды. Здесь также можно использовать спецификаторы имени файла, например, СПАСТИ "ФАЙЛ",8 сохраняет программу BASIC в PRG (программный) файл и СПАСТИ «0: FILE, SEQ, WRITE»,8,1 сохраняет программу BASIC в последовательный файл. Если вторичный адрес не указан или указан как 0 (например, НАГРУЗКА "ФАЙЛ",8) файл сохраняется / загружается из области памяти BASIC (которая на C64 запускается по умолчанию в $ 0801). Если вторичный адрес указан как ненулевое значение (например, НАГРУЗКА "ФАЙЛ",8,1), программа загружается, начиная с адреса, указанного в самом файле (заголовок PRG, который является первыми двумя байтами файла) - эта форма команды более распространена при загрузке программ машинного кода.

Перемещение нагрузки было впервые реализовано на VIC-20 потому что эта машина может запускать BASIC RAM в нескольких разных местах, в зависимости от установленного расширения памяти. Старший Commodore PET серия не поддерживает перемещение, поэтому НАГРУЗКА "ФАЙЛ",8 и НАГРУЗКА "ФАЙЛ",8,1 будет иметь тот же эффект: файл будет загружен в ту же область памяти, из которой он был сохранен. Перемещение нагрузки происходит в хосте, что является исключением из того, что было сказано выше о том, что вторичный адрес используется только внутри устройства. Поскольку PET не может перемещать файлы, программы BASIC, написанные на более поздних машинах Commodore, должны быть изменены с помощью редактора секторов для изменения байтов заголовка. Также можно использовать встроенный в ПЭТ монитор машинного языка для изменения адреса ссылки для программы BASIC после ее загрузки.

Команда НАГРУЗКА "*",8,1 загрузит первую программу на диск, начиная с указанной в файле области памяти. Это одна из самых популярных команд загрузки платформ, например, метод запуска большинства коммерческих программ. Следует отметить тот факт, что расширение с подстановочными знаками выберет только первое имя каталога, если ранее не было доступа к другому файлу на этом диске; имя последнего использованного файла сохраняется в памяти, а последующие НАГРУЗКА "*",8,1 команды загрузят этот файл, а не первый. (Тем не мение, НАГРУЗКА "0:*",8,1 или же НАГРУЗКА ":*",8,1 всегда будет загружать первый файл на диск.)

Каталоги дисков в двухприводных устройствах доступны как НАГРУЗКА "$0", 8 и НАГРУЗКА "$1", 8. "0:$" и "1:$" не обращаются к каталогу, а к фактическим файлам на одном или другом диске, которые просто случайно названы "$". Неполные каталоги можно загрузить, добавив двоеточие и шаблон: например, НАГРУЗКА «$ 0: K * = P»,8 загрузит неполный каталог, который показывает только файлы, имя которых начинается с буквы K и которые относятся к типу PRG; все такие частичные каталоги по-прежнему содержат строку с начальным именем диска и последнюю строку «BLOCKS FREE».

Ошибка сохранения с заменой

Commodore DOS также предлагает команду «Сохранить с заменой», которая позволяет сохранить файл поверх существующего файла без предварительной ЦАРАПАТЬ существующий файл. Это было сделано путем добавления @ символ к имени файла во время ОТКРЫТО или же СПАСТИ операция - например, СПАСТИ «@ МОЯ ПРОГРАММА»,8. В течение многих лет, начиная с диска 4040, распространялись слухи об ошибке в реализации команды. Сначала это отрицали некоторые комментаторы. Были предложены призы, подтверждающие наличие ошибки.[4] К началу 1985 г. Вычислить! Журнал посоветовал читателям избегать использования команды.[5] В том году разные авторы независимо публиковали статьи.[4][6][7][8] доказательства того, что ошибка «Сохранить с заменой» была реальной, и включая методы, с помощью которых она могла быть вызвана.

Затронутые устройства включали однодисковый 1541 и двухдисковый 4040; 8050 и 8250 не выявили проблемы.[4] Некоторые комментаторы предположили, что ошибки можно избежать, всегда явно указывая 0: номер диска при сохранении,[6] хотя позже было показано, что любой дисковых операций без номера диска было достаточно, чтобы привести к ошибке.[9] Ошибка возникла из-за того, что затронутые реализации DOS были модифицированными версиями DOS, содержащимися в более ранних двойных накопителях Commodore PET, таких как 8050. Это создавало «фантомный привод». 1:"в системах с одним диском, что приводит к выделению ненужного буфера при некоторых условиях. Поскольку команда Save-with-Replace использовала все пять буферов дисков и потому, что метод, с помощью которого был выделен" фантомный "буфер, не соответствовал спецификациям , это приводило к тому, что при определенных условиях на диск записывались зашифрованные данные.

В сентябре 1986 года Филип А. Слеймейкер опубликовал статью[10] подробно описывая причину ошибки и предоставляя патчи к 1541 ПЗУ накопителя; читатели с EPROM Горелка могла производить свои собственные исправленные ПЗУ, которые могли быть заменены на привод. Commodore был проинформирован о находках Slaymaker, и хотя они никогда не выпускали официального обновления для оригинальных ПЗУ 1541, они исправили ошибку в 5-й редакции ПЗУ 1571, а также в ПЗУ для дисков 1541-c и 1541-II. . Хотя не поддерживается Commodore, известно, что микропрограммное обеспечение 1541-II (но не микропрограммное обеспечение 1541-c) также можно использовать в исходном приводе 1541 с использованием EPROM, что также исправит ошибку для этого привода.

Командный канал

Как отмечалось ранее, доступ к самой Commodore DOS осуществляется через «командный канал» с использованием синтаксиса, подобного синтаксису, используемому для доступа к файлам. Выдача команд в DOS и получение сообщений о состоянии и ошибках, сгенерированных в ответ на команды, осуществляется путем открытия файла на устройстве с использованием 15 в качестве вторичного адреса, например:

ОТКРЫТО 1,8,15

Чтобы получить и отобразить статус устройства, можно написать код:

ОТКРЫТО 1,8,15:ВХОД#1,E,E $,Т,S:РАСПЕЧАТАТЬ E,E $,Т,S:ЗАКРЫТЬ 1

В приведенном выше примере E будет содержать номер ошибки (если есть, он будет равен нулю, если ошибки нет), E $ будет краткое текстовое описание ошибки, Т будет представлять дорожку диска, на которой произошла ошибка, и S будет сектор на пути Т к которому относится ошибка. Если ошибки нет, эквивалент 00, ОК, 00,00 будет возвращено в четырех переменных. Обратите внимание, что ВХОД# глагол только для режима выполнения. Кроме того, в программах, которые выдают много дисковых команд, принято открывать файл в командном канале устройства в начале программы и не закрывать его, пока программа не завершится.

Commodore BASIC версий 4.0 и более поздних предоставляет псевдо-переменную, называемую DS $ который может использоваться для получения статуса диска вместо приведенного выше кода. Эта зарезервированная переменная недоступна в более ранних версиях BASIC, поэтому командный канал необходимо читать вручную, как показано выше. Обратите внимание, что сразу после включения или сброса будет возвращена версия DOS. Например, 1541 вернет 73, CBM DOS V2.6 1541,00,00. Код ошибки 73 является общим для всех моделей приводов и может использоваться для определения того, был ли привод сброшен в состояние включения питания.

Команды DOS

КомандаОписаниеРеализация BASIC 1.x и 2.xDOS Клин ВыполнениеBASIC 3.0+ Реализация
НовыйОтформатируйте диск, подготовьте его к использованию и удалите все содержащиеся на нем данные. Отсутствие параметра двухсимвольного идентификатора приведет к быстрому удалению всех файлов на уже отформатированном диске.ОТКРЫТЬ 15,8,15, "N0:имя диска,идентификатор": ЗАКРЫТЬ 15@ N0:имя диска,идентификаторЗАГОЛОВОК "имя диска",идентификатор
ЦарапатьУдалить файл с диска (или несколько файлов, используя подстановочные знаки)ОТКРЫТЬ 15,8,15, "S0:имя файла": ЗАКРЫТЬ 15@ S0:имя файлаЦАРАПАТЬ "имя файла"
ПереименоватьПереименуйте файл на диске. Обратите внимание, что новое имя идет первым (кроме кода BASIC 3.0+)!ОТКРЫТЬ 15,8,15, "R0:новое имя=старое имя": ЗАКРЫТЬ 15@ R0:новое имя=старое имяПЕРЕИМЕНОВАТЬ "старое имя" К "новое имя"
ИнициализироватьСбросьте диск и прочитайте диск БАМ во внутреннюю память. Редко требуется, поскольку диск обычно делает это самостоятельно, за исключением случаев, когда диск заменяется другим с тем же идентификатором.ОТКРЫТО 15,8,15,"I0:":ЗАКРЫТЬ 15@ I0:DCLEAR (Только BASIC 7.0+)
ПодтвердитьСогласуйте BAM с каталогом диска, выделите все используемые блоки и освободите все блоки, которые не используются файлами, и удалите все незакрытые файлы из каталога. Сравним с CHKDSK /ScanDisk инструменты операционных систем Microsoft.ОТКРЫТО 15,8,15,"V0:":ЗАКРЫТЬ 15@ V0:СОБИРАТЬ
КопироватьСоздайте копию файла на том же диске (или другом диске в том же двухдисковом устройстве) под другим именем файла. Обратите внимание, что новое имя идет первым (кроме кода BASIC 3.0+)! Дублирование на другой диск без двухдискового устройства требует использования служебной программы.ОТКРЫТЬ 15,8,15, "C0:новое имя=0:существующее имя": ЗАКРЫТЬ 15@ C0:новое имя=0:существующее имяКОПИЯ "существующее имя"К"новое имя"
ДубликатСделайте копию всего диска. Доступно только в устройствах с двумя приводами, в противном случае необходимо использовать служебную программу. Сначала идет номер целевого (!) Диска, затем номер исходного диска (кроме кода BASIC 3.0+).ОТКРЫТО 15,8,15,«D1 = 0»:ЗАКРЫТЬ 15@ D1 = 0РЕЗЕРВНОЕ КОПИРОВАНИЕ D0 В D1

Также есть команда для поиска в файлах RELative типа (ЗАПИСЫВАТЬ#), несколько команд прямого доступа на уровне блоков (БЛОК-ЧТЕНИЕ, БЛОК-ЗАПИСЬ, БУФЕР-УКАЗАТЕЛЬ), управление блоками (БЛОК-АЛЛОКАТ, БЕЗ БЛОКОВ), манипулирование памятью накопителя и выполнение программного кода на процессоре накопителя (ПАМЯТЬ-ЗАПИСАТЬ, ПАМЯТЬ-ЧИТАТЬ, ПАМЯТЬ-ВЫПОЛНИТЬ, БЛОКИРОВАТЬ-ВЫПОЛНИТЬ) и определяемые пользователем функции (ПОЛЬЗОВАТЕЛЬ и & команды). Некоторые из теоретически определяемых пользователем функций были повторно выделены для доступа к новым функциям в версиях DOS после 1.0.

Рекомендации

  1. ^ Стердивант, Джерри А. (февраль – март 1985 г.). «Быстрая загрузка». Коммодор Сила / Игра. Vol. 4 шт. 1. п.54. Получено 2018-10-07.
  2. ^ Браннон, Чарльз (декабрь 1983 г.). «Горизонты: 64». Бюллетень COMPUTE!. № 6. с.178. Получено 2018-10-07.
  3. ^ Грейс, Пол (1986). "Странный чувак". RUN, специальный выпуск 1987 г.. Питерборо, Нью-Гэмпшир: CW Communications / Peterborough, Inc. Получено 2018-10-07.
  4. ^ а б c Уиттерн, Чарльз Х.(Июль 1985 г.). "СОХРАНИТЬ с помощью Replace Exposed !!". Транзактор. 6 (1): 20.
  5. ^ "Великий коммодор: споры о сохранении / замене". Вычислить!. Февраль 1985 г. с. 10. Получено 6 октября 2013.
  6. ^ а б Slaymaker, P.A. (октябрь 1985 г.). «Сохранить с заменой: завершена отладка / часть 1». Вычислить!. п. 79. Получено 16 октября 2013.
  7. ^ Slaymaker, P.A. (ноябрь 1985 г.). "Сохранить с заменой: завершена отладка / часть 2". Вычислить!. п. 111. Получено 30 октября 2013.
  8. ^ Редакторы. "Спасите @: Теория Джерри Нойфилда о старой ошибке". Информация № 9, декабрь 1985 г. / январь 1986 г.
  9. ^ Выдержка из электронного письма Филипа А. Слеймейкера также находится в архиве Группы.Google
  10. ^ Филип А. Слеймейкер. «Устранение SAVE @ и других ошибок 1541». Транзактор Vol. 7 № О2, сентябрь 1986 г., стр. 33–35.
Примечания
  • Иммерс, Ричард; Нойфельд, Джеральд Г. (1984). Внутри Commodore DOS. Полное руководство по дисковой операционной системе 1541. DATAMOST, Inc & Reston Publishing Company, Inc. (Прентис-Холл). ISBN  0-8359-3091-2.
  • Englisch, Lothar; Щепановски, Норберт (1984). Анатомия дисковода 1541. Гранд-Рапидс, Мичиган: Abacus Software (перевод с оригинального немецкого издания 1983 г., Дюссельдорф: Data Becker GmbH). ISBN  0-916439-01-1.
  • (на финском) Лундал, Рейо (1986). 1541-Левясема. Amersoft. ISBN  951-35-3206-2