Коммодор DOS
![]() Вывод каталога диска в формате 1541 | |
Разработчик | Коммодор Интернэшнл |
---|---|
Последний выпуск | 10.0 |
Доступно в | Английский |
Платформы | МОС 6502 Семейство |
Лицензия | Собственный |
Commodore DOS , также известная как CBM DOS , — это дисковая операционная система, на Commodore используемая 8-битных компьютерах . В отличие от большинства других DOS компьютера , которые загружаются с диска в собственную оперативную память и выполняются там, CBM DOS выполняется внутри привода: DOS находится в микросхемах ПЗУ внутри привода и запускается там одним или несколькими выделенными MOS 6502 семейства . процессоры . Таким образом, передача данных между 8-битными компьютерами Commodore и их дисками больше напоминает подключение к локальной сети, чем типичная передача между диском и хостом.
CBM DOS-версии
[ редактировать ]Известно, что существует по крайней мере семь четко пронумерованных версий Commodore DOS; В следующем списке указаны номера версий и соответствующие диски. Если не указано иное, диски имеют формат 5¼ дюйма. Код «lp» обозначает «низкопрофильные» диски. Commodore последовательной шины IEEE-488 (шина IEC) Диски, номер модели которых начинается с 15, подключаются через уникальные последовательные протоколы (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") и SFD-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 тип каталогов и файлов
[ редактировать ]Дискета Commodore 1541 может содержать до 144 файлов в плоском пространстве имен (без подкаталогов ); каталог хранится на зарезервированной дорожке 18, которая расположена на полпути от концентратора до края 35-дорожечного одностороннего диска. до 16 байт Имя файла может иметь длину и теоретически является уникальным; используя методы прямого доступа к структуре каталогов, можно переименовать файл в другой, хотя доступ к таким файлам может быть затруднен или невозможен. Файлы с одинаковыми именами обычно не служат никакой цели, кроме информирования или визуального управления файлами. Одним из популярных приемов, использованных, например, в The Final Cartridge III , было добавление файлов с именами "----------------"
типа DEL<
в каталог, а затем файлы можно будет переставлять по этим строкам, образуя группы. Многие разработчики игр, члены варез- групп и хакеры демосцены также использовали более хитрые пользовательские записи в каталогах.
Имена файлов могут содержать сдвинутый пробел ( $A0
), а если список каталогов просматривается с помощью BASIC, часть имени файла за пределами $A0
символ будет казаться отделенным от первой части имени файла кавычкой, в результате чего BASIC не будет считать его частью полного имени файла. Эту функцию можно использовать для создания записей каталога, таких как SAVE "PROGRAM⇧ Shift–space Commodore–DUDE",8,1, который затем появится в списке каталогов, например, как 32 «ПРОГРАММА»,8,1 ПРГ . [1] Когда пользователь перемещает курсор в начало строки, вводит слово LOAD
превышает размер файла и нажимает RETURN, BASIC интерпретирует это как LOAD "PROGRAM",8,1 ...
, вызывая загрузку программы в память. Все, что стоит после двоеточия или вторичного адреса, не будет выполнено, поскольку компьютер игнорирует любую команду после ЗАГРУЗКИ. [2] Альтернативно, пользователь может нажать ⇧ Shift– RUN/STOP к LOAD
и RUN
программа автоматически. [3]
Нулевой байт, встроенный в имя файла, прервет листинг после загрузки BASIC. Если есть три нулевых байта, это затрудняет перечисление через BASIC. Многие программисты на машинном языке экспериментировали с нулевыми байтами, пытаясь усложнить программистам BASIC доступ к их коду и изменение его.
В BASIC к каталогу можно получить доступ как к неисполняемой псевдо-BASIC-программе с помощью LOAD "$0",8
(или LOAD "$1",8
в случае двойного привода), а затем LIST
. Первая строка имеет номер строки 0 или 1 (с указанием номера диска), показывая в обратном порядке имя и идентификатор диска, а также сокращенный код версии DOS, с которой он был создан (коды различаются только в зависимости от В версиях DOS используются несовместимые форматы дисков: «2A» используется в большинстве 5,25-дюймовых версий DOS, «3D» — в 3,5-дюймовых 1581). Строки после этого имеют размер файла (в дисковых блоках) в качестве псевдо «номера строки», за которым следует имя файла в кавычках и трехбуквенный код типа. В последней строке показано количество нераспределенных блоков на диске (опять же в виде псевдо «номера строки»), за которым следуют слова «BLOCKS FREE».
На Commodore 64 , введя LOAD "$",8,1
заполнит экран мусором вместо загрузки каталога в BASIC RAM. Это связано с тем, что привод назначает каталогу адрес загрузки $ 0401 (1025), что эквивалентно началу BASIC для Commodore PET , но соответствует экранной памяти по умолчанию в C64 (начиная со второго символа первого символа). строка экрана).
Просмотр каталога с помощью LOAD "$",8
Команда перезаписывает программу BASIC в памяти. DOS Wedge и различные картриджи и расширители сторонних производителей, такие как Epyx Fast Load , Action Replay и The Final Cartridge III, позволяют просматривать каталог диска с помощью специальных команд, которые загружают каталог в экранную память, не разрушая текущую программу BASIC. Некоторые версии Commodore BASIC включают в себя DIRECTORY
или CATALOG
команда, выполняющая ту же функцию.
Поддерживаются следующие типы файлов:
SEQ
- Последовательный . файл — это файл данных, который можно читать линейно от начала до конца
SEQ
файлы обычно используются для хранения документов или текстовых файлов, созданных текстовым процессором или другим подобным редактором. Последовательный файл аналогичен плоскому файлу в Linux или UNIX , поскольку он не имеет специализированной внутренней структуры. Невозможно позиционировать любое произвольное место в последовательном файле, так как не существует аналогаlseek
вызов ядра, встречающийся в UNIX-подобных операционных системах. PRG
PRG
файлы обычно содержат исполняемый программный код, хотя их также можно использовать для файлов данных. Первые два байтаPRG
считываются процедурой загрузки файла ядра и используются для определения адреса загрузки (они хранятся в формате с прямым порядком байтов ).REL
- Относительный файл — это разновидность последовательного типа файла, в котором присутствует механизм индексации, называемый боковыми секторами, для обеспечения доступа, ориентированного на записи. Записи могут иметь размер максимум 254 байта и адресуются по кардинальному числу, начинающемуся с единицы, что обеспечивает настоящий произвольный доступ к любой части файла.
USR
- Пользовательский файл имеет внутреннюю структуру, идентичную структуре последовательного файла. Первоначальной целью Commodore для этого типа файлов было облегчение разработки DOS, поскольку содержимое файла можно было скопировать в буфер диска для выполнения микропроцессором диска. Очень немногие программы когда-либо использовали этот тип файлов. Некоторые приложения, использующие нестандартные низкоуровневые дисковые структуры, сохраняют данные в формате USR, что стало своего рода сигналом пользователю «оставьте меня в покое, не пытайтесь копировать или удалить». В частности, файлы GEOS «VLIR» отображаются как
USR
файлы. DEL
- Недокументированный тип файла для внутреннего использования, аналогичный по структуре последовательному файлу. Создание файла этого типа должно выполняться путем прямого изменения каталога диска.
Наличие звездочки ( *
), добавляемый к типу файла в списке каталогов (например, *SEQ
) указывает на то, что файл не был закрыт должным образом после записи. Когда дисковод получает команду закрыть файл, который был открыт для записи, соответствующий буфер сбрасывается на диск, а карта доступности блоков (BAM) обновляется, чтобы точно отражать, какие блоки были использованы. Если сбой программы или другая проблема (например, когда пользователь удаляет диск, когда файл открыт) приводит к созданию «сиротского файла», также называемого «ядовитым» или «запятнанным» файлом, буферы не очищаются, и BAM не будет точно отражать использование диска, что подвергает диск риску повреждения. Доступ к подозрительному файлу обычно невозможен (но его можно открыть в режиме «изменения»), а попытка использования DOS scratch
Команда удаления файла может привести к повреждению файловой системы , например перекрестным ссылкам. Единственный практический метод удаления одного из этих файлов — открыть файл в режиме «изменения» (и исправить его) или проверить диск (см. validate
команду ниже), последний перестраивает BAM и удаляет из каталога ссылки на подозрительные файлы. Печально известная ошибка сохранения с заменой могла привести к созданию файлов splat.
*DEL
— это специальный тип, записываемый в запись каталога на диске для удаленных файлов. Такие файлы не отображаются в обычном списке каталогов, а их блоки данных и записи каталога будут повторно использоваться файлами, которые будут созданы впоследствии. Некоторые служебные программы позволяют «отменить удаление» таких файлов, если их блоки данных и записи каталога еще не были перезаписаны другими файлами. DEL files
обычно используются для вставки баннеров или разделов комментариев в список каталогов.
Типы файлов с <
после них (например, PRG<
) «заблокированы» и не могут быть удалены, однако их можно открыть для чтения. Не существует команды Commodore DOS, которая могла бы явно установить или очистить этот статус, но было написано множество сторонних утилит, позволяющих это сделать. Эти утилиты обычно читают каталог с помощью команд прямого доступа, выполняют необходимые изменения в необработанных данных, а затем записывают изменения обратно на диск.
Доступ к файлам
[ редактировать ]Доступ к файлам в первую очередь является проблемой для главного компьютера. ПЗУ ядра компьютера содержит необходимые примитивные процедуры, необходимые для доступа к файлам, а ПЗУ BASIC содержит абстракцию более высокого уровня для доступа к файлам с использованием синтаксиса BASIC. Компонентами, которые касаются самой DOS, являются анализ имени файла и вторичный адрес. В этом разделе для полноты представлен обзор необходимых команд BASIC.
Открытие файла на диске Commodore влечет за собой обработку ряда параметров, которые отчасти аналогичны процедурам открытия файлов в других средах. Поскольку DOS фактически работает в контроллере накопителя, последовательность открытия файла должна передавать диску достаточно информации, чтобы обеспечить однозначную интерпретацию. Типичный оператор BASIC для записи в последовательный файл будет следующим:
OPEN 3,8,4,"0:ADDRESSBOOK,S,W"
Параметры, следующие за OPEN
глагол следующие:
- 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 (вторичный адрес).
- КОМАНДНАЯ СТРОКА
- The
"0:ADDRESSBOOK,S,W"
Параметр официально упоминается в документации Commodore как командная строка и интерпретируется контроллером устройства, к которому осуществляется доступ. В случае дискового накопителя формальная структура командной строки состоит из номера механизма привода (0:
, не путать с номером устройства), имя файла (ADDRESSBOOK
), тип файла (S
, в данном примере последовательный) и режим доступа (W
, открытый для записи в этом примере). На практике некоторые из этих параметров могут быть опущены. Как минимум, требуется только имя файла, если файл должен быть открыт для чтения.
- Номер диска идентифицирует механизм диска, подключенный к контроллеру дискового устройства, и аналогичен номеру логического устройства в контроллере SCSI , который способен управлять несколькими механизмами (например, контроллеры OMTI SASI , которые были разработаны для работы с ST-412 / ST ). -506 жестких дисков в 1980-е годы). В дискетах первым механизмом является привод 0:, а вторым — 1:. Довольно распространенной практикой является пропуск номера привода при обмене данными с одним дисководом, поскольку в таких устройствах по умолчанию используется 0:, но поскольку пропуск номера может вызвать несколько неясных ошибок в DOS, это не рекомендуется ( одно двоеточие эквивалентно 0: и этого достаточно, чтобы избежать этих ошибок). Исключением из этого соглашения является подсистема жестких дисков лейтенанта Кернала , в которой номер диска относится к «логическим единицам» ( виртуальным дискам, созданным на одном физическом диске), что делает синтаксис, такой как 4: или 10:, необходимым, если открываемый файл не находился в нулевой логической единице (что эквивалентно нулю механизма привода в двухдисковом устройстве).
Файлы также можно загружать и сохранять с помощью LOAD
и SAVE
команды. Здесь также можно использовать спецификаторы имени файла, например, SAVE "FILE",8
сохраняет программу BASIC в PRG
(программный) файл и SAVE "0:FILE,SEQ,WRITE",8,1
сохраняет программу BASIC в последовательный файл. Если вторичный адрес не указан или указан как 0 (например, LOAD "FILE",8
), файл сохраняется/загружается из области памяти BASIC (которая на C64 по умолчанию начинается с $ 0801). Если вторичный адрес указан как ненулевое значение (например, LOAD "FILE",8,1
), программа загружается, начиная с адреса, указанного в самом файле (заголовок PRG, который представляет собой первые два байта файла) — эта форма команды более распространена при загрузке программ машинного кода.
Перераспределение нагрузки было впервые реализовано на VIC-20 , поскольку эта машина могла запускать BASIC RAM в нескольких разных местах, в зависимости от установленного расширения памяти. Старая серия Commodore PET не поддерживала перемещение, поэтому LOAD "FILE",8
и LOAD "FILE",8,1
будет иметь тот же эффект: файл будет загружен в ту же область памяти, из которой он был сохранен. Перераспределение нагрузки происходит на хосте, что является исключением из сказанного выше о том, что вторичный адрес используется только внутри устройства. Поскольку PET не может перемещать файлы, программы BASIC, написанные на более поздних машинах Commodore, необходимо модифицировать с помощью редактора секторов для изменения байтов заголовка. Также можно использовать встроенный в PET монитор машинного языка для изменения адреса ссылки для программы BASIC после ее загрузки.
Команда LOAD "*",8,1
загрузит первую программу на диск, начиная с ячейки памяти, указанной файлом. Это одна из самых популярных команд загрузки платформ, например, метод запуска большинства коммерческих программ. Следует отметить тот факт, что расширение подстановочных знаков будет выбирать первое имя каталога только в том случае, если ранее не было доступа к другому файлу на этом диске; имя последнего использованного файла сохраняется в памяти, и последующие LOAD "*",8,1
команды будут загружать этот файл, а не первый. (Однако, LOAD "0:*",8,1
или LOAD ":*",8,1
всегда будет загружать первый файл на диск.)
Доступ к каталогам дисков в двухдисковых устройствах осуществляется как LOAD "$0", 8
и LOAD "$1", 8
. "0:$"
и "1:$"
не обращайтесь к каталогу, а к реальным файлам на том или ином диске, которые случайно получили имя "$"
. Частичные каталоги можно загрузить, добавив двоеточие и шаблон: например, LOAD "$0:K*=P",8
загрузит частичный каталог, в котором отображаются только файлы, имена которых начинаются с буквы K и имеют тип PRG; все такие частичные каталоги по-прежнему содержат начальную строку имени диска и последнюю строку «BLOCKS FREE».
Ошибка сохранения с заменой
[ редактировать ]Commodore DOS также предлагает команду «Сохранить с заменой», которая позволяет сохранить файл поверх существующего файла без необходимости предварительного сохранения. SCRATCH
существующий файл. Это было сделано путем добавления @
символ к имени файла во время OPEN
или SAVE
операция - например, SAVE "@MY PROGRAM",8
. В течение многих лет, начиная с привода 4040, распространялись слухи об ошибке в реализации команды. Поначалу некоторые комментаторы это отрицали. За доказательство существования ошибки предлагались призы. [4] К началу 1985 года Compute! журнал посоветовал читателям избегать использования этой команды. [5] В этом году разные авторы независимо друг от друга опубликовали статьи. [4] [6] [7] [8] доказывая, что ошибка «Сохранить с заменой» была реальной, и включая методы, с помощью которых она могла быть вызвана.
Затронутые устройства включали модели 1541 с одним диском и 4040 с двумя дисками; у 8050 и 8250 этой проблемы не было. [4] Некоторые комментаторы предположили, что этой ошибки можно избежать, всегда явно указывая 0:
номер диска при сохранении, [6] хотя позже было показано, что любых операций с диском без номера диска было достаточно, чтобы привести к ошибке. [9] Ошибка возникла из-за того, что затронутые реализации DOS представляли собой модифицированные версии DOS, содержавшиеся в более ранних двойных дисководах Commodore PET, таких как 8050. Это создавало «фантомный диск». 1:
" в системах с одним диском, что при некоторых условиях приводит к выделению ненужного буфера. Поскольку команда "Сохранить с заменой" использовала все пять буферов диска, а также потому, что метод выделения "фантомного" буфера не соответствовал спецификациям , это приводило к записи на диск зашифрованных данных при некоторых условиях.
В сентябре 1986 года Филип А. Слеймейкер опубликовал статью. [10] подробное описание причины ошибки и предоставление исправлений для ПЗУ накопителя 1541; считыватели с устройством записи EPROM могли создавать свои собственные исправленные ПЗУ, которые можно было заменять в привод. Компания Commodore была проинформирована о выводах Slaymaker, и, хотя они так и не выпустили официального обновления для оригинальных ПЗУ 1541, они исправили ошибку в пятой версии ПЗУ 1571, а также в ПЗУ для накопителей 1541-c и 1541-II. . Хотя Commodore не поддерживает прошивку, известно, что прошивку 1541-II (но не прошивку 1541-c) также можно использовать в оригинальном накопителе 1541 с использованием EPROM, что также исправит ошибку для этого накопителя.
Командный канал
[ редактировать ]Как отмечалось ранее, доступ к самой Commodore DOS осуществляется через «командный канал» с использованием синтаксиса, подобного тому, который используется для доступа к файлам. Выдача команд DOS и получение сообщений о состоянии и ошибках, генерируемых в ответ на команды, осуществляется путем открытия файла на устройстве с использованием 15 в качестве вторичного адреса, например:
OPEN 1,8,15
Чтобы получить и отобразить статус устройства, можно написать:
OPEN 1,8,15:INPUT#1,E,E$,T,S:PRINT E,E$,T,S:CLOSE 1
В приведенном выше примере E
будет содержать номер ошибки (если есть, он будет равен нулю, если ошибки не существует), E$
будет краткое текстовое описание ошибки, T
будет представлять дорожку диска, на которой произошла ошибка, и S
будет ли сектор на правильном пути T
к которому относится ошибка. Если ошибок нет, эквивалент 00, ок, 00,00 будет возвращено в четырех переменных. Обратите внимание, что INPUT#
— это глагол только для режима выполнения. Кроме того, в программах, выдающих множество дисковых команд, принято открывать файл в командном канале устройства в начале программы и не закрывать его до завершения работы программы.
Commodore BASIC версии 4.0 и более поздних версий предоставляет псевдопеременную, называемую DS$
который можно использовать для получения статуса диска вместо приведенного выше кода. Эта зарезервированная переменная недоступна в более ранних версиях BASIC, поэтому командный канал необходимо читать вручную, как показано выше. Обратите внимание, что сразу после включения или перезагрузки будет возвращена версия DOS. Например, 1541 вернет 73,CBM DOS V2.6 1541,00,00 . Код ошибки 73 является общим для всех моделей приводов и может использоваться для определения того, был ли привод сброшен в состояние включения.
DOS-команды
[ редактировать ]Команда | Описание | БАЗОВАЯ реализация версий 1.x и 2.x | DOS Wedge Реализация | БЕЙСИК 3.0+ Реализация |
---|---|---|---|---|
Новый | Отформатируйте диск, подготовив его к использованию и удалив все содержащиеся на нем данные. Если опустить параметр двухсимвольного идентификатора, все файлы на уже отформатированном диске будут быстро удалены. | OPEN 15,8,15,"N0:disk name,identifier":CLOSE 15 | @N0:disk name,identifier | HEADER "disk name",identifier |
Царапать | Удалить файл с диска (или несколько файлов, используя сопоставление с подстановочными знаками) | OPEN 15,8,15,"S0:file name":CLOSE 15 | @S0:file name | SCRATCH "file name" |
Переименовать | Переименуйте файл на диске. Обратите внимание, что новое имя идет первым (кроме кода BASIC 3.0+)! | OPEN 15,8,15,"R0:new name=old name":CLOSE 15 | @R0:new name=old name | RENAME "old name" TO "new name" |
Инициализировать | Перезагрузите диск и прочитайте BAM диска во внутреннюю память. Требуется редко, поскольку диск обычно делает это самостоятельно, за исключением случаев замены диска на другой с тем же идентификатором. | OPEN 15,8,15,"I0:":CLOSE 15 | @I0: | DCLEAR (только БАЗОВАЯ версия 7.0+) |
Подтвердить | Согласуйте BAM с каталогом диска, выделите все используемые блоки и освободите все блоки, не используемые файлами, а также удалите из каталога все незакрытые файлы. Сопоставимо с инструментами CHKDSK / ScanDisk операционных систем Microsoft. | OPEN 15,8,15,"V0:":CLOSE 15 | @V0: | COLLECT |
Копировать | Дублируйте файл на том же диске (или другом диске в том же двухдисковом устройстве) под другим именем файла. Обратите внимание, что новое имя идет первым (кроме кода BASIC 3.0+)! Для копирования на другой диск без двухдискового устройства необходимо использовать служебную программу. | OPEN 15,8,15,"C0:new name=0:existing name":CLOSE 15 | @C0:new name=0:existing name | COPY"existing name"TO"new name" |
Дублировать | Дублируйте весь диск. Доступно только в устройствах с двумя приводами, в противном случае вместо этого необходимо использовать служебную программу. Сначала идет номер целевого(!) диска, затем номер исходного диска (кроме кода BASIC 3.0+). | OPEN 15,8,15,"D1=0":CLOSE 15 | @D1=0 | BACKUP D0 TO D1 |
Также есть команда для поиска в файлах типа RELative ( RECORD#
), несколько команд прямого доступа на уровне блоков ( BLOCK-READ
, BLOCK-WRITE
, BUFFER-POINTER
), управление блоками ( BLOCK-ALLOCATE
, BLOCK-FREE
), манипуляции с памятью накопителя и выполнение программного кода на процессоре накопителя ( MEMORY-WRITE
, MEMORY-READ
, MEMORY-EXECUTE
, BLOCK-EXECUTE
) и определяемые пользователем функции ( USER
и &
команды). Некоторые из теоретически определяемых пользователем функций были переназначены для доступа к новым функциям в версиях DOS после 1.0.
Ссылки
[ редактировать ]- ^ Стердивант, Джерри А. (февраль – март 1985 г.). «Быстрая загрузка» . Коммодор Power/Play . Том. 4, нет. 1. п. 54 . Проверено 7 октября 2018 г.
- ^ Браннон, Чарльз (декабрь 1983 г.). «Горизонты: 64» . Бюллетень COMPUTE ! № 6. с. 178 . Проверено 7 октября 2018 г.
- ^ Грейс, Пол (1986). «Странный чувак» . Специальный выпуск RUN 1987 года . Питерборо, Нью-Гэмпшир: CW Communications/Peterborough, Inc. Проверено 7 октября 2018 г.
- ^ Jump up to: а б с Уиттерн, Чарльз Х. (июль 1985 г.). «СОХРАНИТЬ с заменой открытой!!» . Транзактор . 6 (1): 20.
- ^ «Дебаты о спасении/замене великого коммодора» . Вычислите! . Февраль 1985 г. с. 10 . Проверено 6 октября 2013 г.
- ^ Jump up to: а б Слеймейкер, Пенсильвания (октябрь 1985 г.). «Сохранить с заменой: наконец-то отлажено / Часть 1» . Вычислите! . п. 79 . Проверено 16 октября 2013 г.
- ^ Слеймейкер, Пенсильвания (ноябрь 1985 г.). «Сохранить с заменой: наконец-то отлажено / Часть 2» . Вычислите! . п. 111 . Проверено 30 октября 2013 г.
- ^ Редакторы. «Save @: Теория Джерри Ньюфилда о старой ошибке». Информация № 9, декабрь 1985 г./январь 1986 г.
- ^ Отрывок из электронного письма Филипа А. Слеймейкера также заархивирован на Groups.Google.
- ^ Филип А. Слеймейкер. «Устранение SAVE@ и других ошибок 1541». Транзактор Том. 7 № О2, сентябрь 1986 г., стр. 33–35.
- Примечания
- Иммерс, Ричард; Нойфельд, Джеральд Г. (1984). Внутри Commodore DOS. Полное руководство по дисковой операционной системе 1541. ДАТАМОСТ, Инк и Рестон Паблишинг Компани, Инк (Прентис-Холл). ISBN 0-8359-3091-2 .
- Энглиш, Лотар; Щепановский, Норберт (1984). Анатомия дисковода 1541. Гранд-Рапидс, Мичиган: Abacus Software (перевод с оригинального немецкого издания 1983 года, Дюссельдорф: Data Becker GmbH). ISBN 0-916439-01-1 .
- (на финском языке) Лундал, Рейо (1986). 1541 год — Левьясема . Амерсофт. ISBN 951-35-3206-2