Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

TRSDOS (который выступает за T AnDy R Adio S обходного Д ИСК О perating S ystem) является операционной системой для Тэнди ТРС-80 линии из восьми-битных Zilog Z80 микрокомпьютеров , которые были проданы через Radio Shack с 1977 по 1991 руководству TANDY в рекомендуется произносить его как « трисс-досс» . TRSDOS не следует путать с Tandy DOS , версией MS-DOS, лицензированной Microsoft для линейки персональных компьютеров Tandy x86. (ПК).

С оригинальным TRS-80 Model I 1977, TRSDOS был прежде всего способом расширения MBASIC ( BASIC в ПЗУ ) с дополнительным вводом / выводом командами , которые работали с диском файлами , а не кассеты , которые были использованы (ввод / вывод) недисковые системы Модели I. Более поздние компьютеры Model III, оснащенные дисками, использовали совершенно другую версию TRSDOS от Radio Shack, кульминацией которой стала версия 1.3 TRSDOS в 1981 году. С 1983 года в компьютерах TRS-80 Model 4, оснащенных дисками, использовалась TRSDOS версии 6, которая была развитием LDOS модели III от Logical Systems, Inc. Последняя была обновлена ​​в 1987 году и выпущена как LS-DOS 6.3.

Совершенно несвязанной была версия TRSDOS от Radio Shack для своего профессионального компьютера TRS-80 Model II 1979 года, также основанная на Z80 и оснащенная 8-дюймовыми дисками. Более поздние машины в этой линейке, модели 12, 16 и 6000, использовали Z80 в качестве альтернативного процессора для своего основного чипа Motorola 68000 и могли запускать эту версию TRSDOS для обратной совместимости со старым программным обеспечением Z80.

История [ править ]

Танди Corporation «s TRS-80 микрокомпьютер не имеет дисковода или операционную систему диска при выпуске. Первая версия TRSDOS, написанная Рэнди Куком, была настолько ошибочной, что другие писали альтернативы, включая NewDOS и LDOS . После споров с Куком по поводу прав собственности на исходный код Тэнди нанял Logical Systems, разработчика LDOS, для продолжения разработки TRSDOS. [1] TRSDOS 6, поставляемый с TRS-80 Model 4 в 1983 году, идентичен LDOS 6.00. [2]

Даты [ править ]

  • 8 мая 1979 г. - Radio Shack выпускает TRSDOS 2.3.
  • 1 мая 1981 - Radio Shack выпускает Model III TRSDOS 1.3.
  • 26 апреля 1983 - Radio Shack представляет TRSDOS версии 6.0 с новой Model 4s.
  • 1984 - Radio Shack выпускает версию 6.2, окончательную версию для Model 4 [3]
  • 1984 - Logical Systems публикует The Source , исходный код ассемблера с комментариями для TRSDOS 6.2 [4]
  • Конец 1986 - Logical Systems выпускает LS-DOS 6.3, функционально эквивалентное обновление TRSDOS 6.2. С этого дня Tandy / Radio Shack поставляет его с Model 4D.

Особенности и возможности [ править ]

Линия компьютеров TRS-80 на базе RadioShack Z80 ( модели I / III и модель 4 ) поддерживает до четырех физических дисководов для гибких дисков (мини-дискет), которые (при продаже) используют 5¼-дюймовые дискеты . Исходный TRSDOS для Модели I поддерживал только односторонние диски с 35 дорожками, отформатированными с одинарной плотностью (секторы кодируются с использованием техники частотной модуляции ). Модель III TRSDOS (кульминацией которой стала версия 1.3) поддерживала 40-дорожечные диски, отформатированные с двойной плотностью (с использованием модифицированной частотной модуляции).). Модель оснащена контроллерами двойной плотности, а модели I / III, оснащенные 80-трековыми приводами или двусторонними приводами, не могут использовать TRSDOS; RadioShack продавала операционную систему LDOS от Logical System, которая могла управлять этими типами дисков. TRSDOS 6 модели 4 является развитием LDOS и имеет те же возможности.

Жесткие диски (также известные как винчестерские приводы ) требовали специального программного обеспечения драйверов, поставляемого их производителями. Эти драйверы позволяли любой установке TRSDOS обращаться к ним с помощью до восьми возможных разделов дисков, каждому из которых назначены номера дисков с нуля по седьмой. Фактически, большой жесткий диск можно отформатировать с более чем восемью разделами, но TRSDOS может получить доступ только к восьми за один сеанс. Некоторые разделы жестких дисков могут быть отформатированы под TRSDOS, а другие - под ОС CP / M. Каждому дисководу гибких дисков в системе также потребуется одно присвоение номера дисковода. Модель 4 с ее способностью настраивать ramdisk (Memdisk) также требовала для этого присвоения номера диска.

Все версии TRSDOS используют оверлеи для удовлетворения большинства системных запросов, а каталоги на диске не хранятся в памяти. Это имеет два значения для производительности системы. Во-первых, при первоначальном доступе к файлу DOS всегда обращается к каталогу диска для получения информации, дающей физическое отображение дискового пространства, выделенного файлу (включая его экстенты, если они есть). После первоначального доступа эта информация сохраняется в блоке управления файлами, объем памяти для которого предоставляется вызывающим приложением. Дальнейшие ссылки не нуждаются в чтении каталога диска (если файл не записывается и не требуется выделить больше дискового пространства). По этой причине производительность системы во многом зависит от того, насколько близко выделенное для файла дисковое пространство (а) находится / находится в цилиндре каталога,и насколько фрагментирован (экстенты расположены в несмежных пространствах) файл в целом. Чем дальше находится цилиндр каталога, тем больше потребуется перемещать головку чтения / записи диска, что замедляет доступ к диску и вызывает больший механический износ диска. TRSDOS имеет команды, позволяющие пользователю оптимизировать размещение определенных файлов на физическом пространстве диска, аFREEкоманда для отображения карты физического размещения файла на диске.

Второе следствие архитектуры, основанной на наложении, заключается в том, что диск, содержащий системные файлы TRSDOS (расширение файла / SYS), всегда должен присутствовать в том диске, который назначен как логический диск с нулевым номером. (На Model 4 это может быть Memdisk, освобождая физический диск от нуля, который можно использовать для несистемного диска с данными). В LDOS и TRSDOS 6 есть команда SYSRES, которая загружает выбранные системные файлы в ОЗУ Z80, освобождая таким образом место на системном диске для несистемных данных. Во всех версиях есть варианты команды SYSTEM, которая позволяет переназначать номера логических дисков физическим дискам. Можно назначить номера дисков таким образом, чтобы физическому диску не был назначен номер логического диска; это иногда полезно, чтобы гарантировать невозможность доступа к диску в целях безопасности (защиты от записи). Диски могут быть настроены на защиту от записи с помощью DOS,также.

Управление диском [ править ]

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

Система также поддерживает в памяти Z80 в TRSDOS таблицу управления приводом, в которой хранятся параметры, связанные с каждым из восьми логических приводов. Параметры диска относятся к тому, как общее пространство хранения на диске делится на адресуемые единицы. Слой (и) магнитных частиц на поверхности дискового носителя намагничивается (в процессе форматирования) в концентрические круги областей хранения, называемых ТРЕКАМИ . Каждая дорожка разделена на 256-байтовые подобласти, называемые СЕКТОРАМИ . Каждый сектор однозначно идентифицируется набором информации, предшествующей каждому сектору, который называется ID FIELD.. Хотя количество секторов на дорожке может варьироваться от одного типа носителя к другому, количество секторов на каждой дорожке одного и того же носителя (и в каждой грануле) всегда должно быть постоянным.

Диски организованы следующим образом: каждая дорожка форматируется в определенное количество 256-байтовых секторов с максимальной емкостью 32 сектора на дорожку. Секторы сгруппированы в блоки, называемые гранулами.которые различаются по размеру в зависимости от общей емкости дорожек на диске, хотя размер гранул для каждого формата диска постоянен. Для сорокцилиндровых дисков, отформатированных с двойной плотностью, стандартной для приводов, установленных в TRS-80 Models III и 4, размер гранул составляет шесть 256-байтовых секторов или 1,5 КБ. Каждая дорожка имеет три гранулы по 4,5 КБ памяти. Каждая сторона (поверхность) диска обычно отформатирована с 40 дорожками, что дает 180 КБ на каждую сторону. Модель 4D с двухсторонними дисками дает 360 КБ дискового пространства. Когда для файла требуется дополнительное дисковое пространство (например, расширение файла во время записи), выделяется дополнительная гранула. Таким образом, гранула становится единицей хранения минимального размера.

TRSDOS присваивает номера каждому сектору, каждой дорожке и каждой поверхности. Поверхности нумеруются последовательно, начиная с нуля. Дорожки нумеруются последовательно, начиная с нуля в самой внешней части диска, давая самой внутренней дорожке наивысший номер. При использовании дисков с несколькими головками номера дорожек на поверхности дублируются на каждой поверхности, причем все дорожки с одинаковыми номерами составляют цилиндр . Для двусторонней дискеты, отформатированной на Model 4D, нулевая дорожка нулевой дорожки и нулевая дорожка поверхности 1 сгруппированы вместе в нулевой цилиндр. Емкость цилиндров также имеет верхний предел в 256 секторов на цилиндр или восемь гранул на цилиндр, в то время как система поддерживает (для жестких дисков с несколькими пластинами носителей информации) максимум восемь головок на диск.

Цилиндр каталога диска помещается во время процесса форматирования на цилиндр со средним номером; таким образом, стандартный 40-цилиндровый диск имеет каталог, установленный на цилиндре 20. Это сокращает среднее расстояние (и время доступа), которое головка чтения / записи должна перемещать для доступа к каталогу. Первый сектор каталога диска содержит таблицу распределения гранул ( GAT ). GAT побитово отображается на каждую гранулу пространства на диске. Другие поля в GAT содержат ИМЯ ПАКЕТА, ДАТУ создания (когда диск был отформатирован), ПАРОЛЬ пакета и данные, относящиеся к конфигурации диска.

Когда файл должен быть открыт для доступа, системе необходимо найти в каталоге запись в каталоге. Время поиска сводится к минимуму за счет использования метода хеширования для сокращения 11-символьной строки, образованной из имени файла и расширения, до однобайтового значения. Хэш-код для каждого файла хранится в таблице хеш-индекса (HIT), которая является вторым сектором каталога. Каждая позиция в этой таблице соответствует определенной записи в каталоге. Хеш-таблица, имеющая длину в один сектор, может индексировать максимум 256 записей каталогов или файлов. Сам каталог имеет размер в соответствии с емкостью диска и составляет не более одного цилиндра (до 34 секторов). Таким образом, чем больше емкость дискового хранилища, тем больше его каталог и тем большее количество имен файлов может быть сохранено на диске.

Запись каталога содержит такую ​​информацию, как дата последнего изменения файла, его коды пароля для обновления и доступа, его уровень доступа и другие атрибуты, например, является ли он файлом SYStem или PDS (секционированным набором данных), и была ли сделана резервная копия. made, относительный номер последнего сектора в файле и последний байт в последнем секторе (или конце файла). Запись также содержит физическое хранилище, используемое файлом, с указанием на цилиндр, относительную начальную гранулу и количество смежных гранул для каждого экстента, связывающего файл. Когда файл имеет более четырех экстентов, при необходимости используются дополнительные записи каталога с указателями вперед и назад, связывающими каждую запись каждого файла.

Когда TRSDOS форматирует диск, все параметры, связанные с дискетой, предопределены. Таким образом, количество секторов на дорожке, количество секторов на гранулу и, следовательно, гранул на дорожку, количество сторон (поверхностей) и количество цилиндров - все это определяется, а также плотность носителя. Некоторые из этих показателей (плотность, стороны, гранулы на дорожку) записываются в поля в таблице распределения гранул, которая является частью каталога диска. Остальные (секторы на дорожку, секторы на гранулу, в дополнение к прежним количествам) являются частью полей таблицы управления приводом. Когда система пытается открыть файл на диске, она использует @CKDRV SVC для проверки доступности диска, а затем записывает диск, как только обнаруживает, что он доступен. Эта функция "ведения журнала" обновит поле DIRCYL,затем обновите поля DBLBIT и MAXCYL на основе информации, хранящейся в GAT. Эта процедура освобождает пользователя от необходимости вручную регистрировать вновь вставленный диск; он вправе заменять диски, отформатированные по-разному, на любом диске, не беспокоясь о том, что система получит к нему неправильный доступ.

Дисковые примитивы SVC передаются через общие системные процедуры, содержащиеся в программном драйвере, установленном для каждого типа дискового запоминающего устройства. Драйвер для флоппи-дисковода модели III или модели 4 называется «$ FD» и находится в области нижней памяти TRSDOS. Жесткие диски поставляются с собственным программным драйвером и обычно устанавливаются в верхнюю память над системным указателем HIGH $, поскольку места в области низкой памяти обычно недостаточно (особенно на Model 4, так как программное обеспечение необходимо для доступа к ее внешней банковской памяти. не может находиться в верхней памяти). Эти процедуры драйвера устанавливают протокол связи между приложением, запрашивающим доступ к диску, и аппаратным обеспечением контроллера гибких дисков компьютера. В TRS-80 используются микросхемы контроллеров из серии Western Digital: WD1791 в версии без вентильного массива Model 4,и WD1773 в версии Model 4 Gate Array. Когда запрос ввода-вывода вызывается SVC более высокого уровня, например, запрос на ЧТЕНИЕ записи файла, запрос транслируется в этот дисковый примитив (команда FDC или отчет о состоянии), необходимый для удовлетворения функционального запроса. Протокол связи единообразен для всех дисковых устройств, подключенных к системе. Это делает доступ к файлам прозрачным для размера или характера дискового устройства в рамках параметров, хранящихся в DCT для этого диска.Это делает доступ к файлам прозрачным для размера или характера дискового устройства в рамках параметров, хранящихся в DCT для этого диска.Это делает доступ к файлам прозрачным для размера или характера дискового устройства в рамках параметров, хранящихся в DCT для этого диска.[5]

Управление файлами [ править ]

Дисковые файлы поддерживаются с двумя типами доступа: ввод-вывод записи и ввод-вывод символов. Логические записи длиной от одного до 256 байтов могут быть прочитаны или записаны с помощью запросов @READ или @WRITE SVC. Ввод-вывод записи может быть произвольным (по позиционным запросам SVC до READ / WRITE) или последовательным доступом с использованием повторяющихся READ или WRITE. Символьный (или байтовый) ввод-вывод выполняется с помощью запросов @GET и @PUT SVC и по сути совпадает с вводом-выводом записи с длиной логической записи.(LRL) равняется единице. (Физический доступ к дисковому устройству хранения всегда осуществляется блоками по 256 байтовых секторов. Это фиксируется аппаратным обеспечением контроллера диска TRS-80). Однако, если GET или PUT используются для реализации последовательного доступа, то файл можно рассматривать как символьное устройство ввода-вывода, точно так же, как принтер, последовательный порт или устройство отображения видео. Следовательно, байтовый запрос ввода / вывода не зависит от физического устройства, «подключенного» к блоку управления, который запрашивает ввод / вывод. Это делает систему «независимой от устройства».

Имена файлов ограничены восемью буквенно-цифровыми символами (первый символ должен быть альфа-символом), которые нечувствительны к регистру (используются только заглавные буквы; любые введенные строчные буквы должны быть заглавными). Расширения файлов могут содержать до трех символов и подчиняться одним и тем же правилам. Пароли файлов состоят из восьми символов и подчиняются одним и тем же правилам (версии TRSDOS 6 до 6.2 поддерживают пароли владельцев и пользователей). Целым дискетам также могут быть назначены мастер-пароли, которые могут ограничивать доступ пользователей с помощью команд BACKUP и PURGE.

В TRSDOS и LDOS система никогда не "регистрируется" на каком-либо текущем диске, как в CP / M , PC DOS и MS-DOS . Системная подсказка всегда TRSDOS Ready. Все запросы доступа к файлам (независимо от того, были ли они отправлены пользователем на консоли или выполняемой программой) удовлетворяются путем поиска в каталоге первого указанного диска (принимается как нулевой диск, если номер диска не указан) и, если запрошенный файл не найдено, затем выполняется поиск следующего диска (с более высоким номером) в системе. Это продолжается до тех пор, пока файл не будет найден или все диски в системе не будут найдены (но варианты этого правила см. Ниже).

Номера :дисков указываются двоеточием, за которым сразу следует номер диска. Двоеточие является необязательным, если только спецификация диска не используется в качестве суффикса имени файла. Используя команду DIRкаталога в качестве примера:

DIRотображает все файлы, начиная с логического диска 0, затем с первого диска и так далее.
DIR+ + :4или DIR+ + 4выполняет поиск на четвертом логическом диске (для всех файлов, как всегда, если имя файла не указано).
DIR+ + :4-6или DIR+ + 4-6выполняет поиск логических дисков четыре, пять и шесть.
DIR+ + :4-или DIR+ + 4-выполняет поиск логических дисков четыре, пять, шесть и семь.
DIR+ + FILENAME:2ищет FILENAME на втором логическом диске.
DIR+ + FILENAME:2-ищет FILENAME на всех логических дисках, начиная со второго.

Как видно, тире -используется для указания диапазона номеров дисков. В DIRи CATкоманды (каталог) показать все спецификации файла ( filespecs ) , соответствующие запросу на всех дисках. Другие команды / утилиты, такие как BACKUP, COPYи PURGE, и поиск дисков, инициированный выполняемыми программами, останавливают поиск на первом найденном подходящем диске. Если одна и та же спецификация файлов существует на нескольких дисках, эти файлы на дисках с более высокими номерами будут исключены.

Поддерживается доступ к файлам по частичным именам файлов ( спецификациям частей ), расширениям файлов и датам файлов. Например:

DIR+ + SAMPLEвыберет файлы SAMPLE, SAMPLE1, SAMPLE23 и SAMPLEIT.
DIR+ + /BASвыберет файлы SAMPLE / BAS, TEST / BAS, EXAMPLE / BAS и т. д.

Как и в DIRпредыдущем примере, спецификации дисков ( drivepecs ) могут быть добавлены к файлам. В этих примерах предполагается, что выбранные файлы не стали невидимыми в каталоге диска. Запросы на доступ к файлам, выдаваемые прикладными программами, работающими под TRSDOS, работают точно так же.

Интерфейс командной строки [ править ]

В TRSDOS / LS-DOS 6.x стандартный интерпретатор системных команд (SYS1 / SYS) можно функционально заменить пользовательским интерпретатором, скопировав новый интерпретатор в системный файл SYS13 / SYS (который в немодифицированной установке является фиктивным файлом ). Это может быть любой машинный код / ​​программный файл CMD. В документации это называется «расширенным интерпретатором команд» или ECI.

TRSDOS / LS-DOS 6.x поддерживает подстановочные знаки в именах файлов, как одиночный символ? и мультисимвольный *.

TRSDOS (версия II) отличался включением шумовых слов, подобно спецификации COBOL 1959 года . Это сделало команды более похожими на английский язык. Например, следующие команды работали одинаково:

  • КОПИРОВАТЬ filea fileb
  • КОПИРОВАТЬ файлa В файлb

Поскольку в TRSDOS нет понятия перенаправления файлов на диске, как в UNIX / Linux и MS-DOS , концепция команды APPEND несколько отличается от концепции добавления через перенаправление вывода в UNIX или MS-DOS. TRSDOS / LS-DOS 6.x действительно обеспечивает перенаправление ввода / вывода для системных устройств (клавиатура * KI, экран дисплея * DO, принтер * PR, последовательный порт * CL), а также между устройствами и дисковыми файлами. Команда DEVICE отображает карту каналов ввода-вывода и маршрутов. В DOS и UNIX печать файла может выполняться с перенаправлением; в UNIX это обычно выполняется путем буферизации файла на «строчный принтер» (с помощью lprcommand), поскольку UNIX традиционно является многопользовательской системой. Задания на печать TRSDOS / LS-DOS 6.x можно перенаправить (например, в файл на диске), применив команды LINK или ROUTE к устройству system * PR.

TRSDOS / LS-DOS 6.x не поддерживает подкаталоги или пользовательские области. Однако команды DIR и CAT (Каталог) для отображения данных файла поддерживают обычные частичные имена файлов, суффиксы и даты файлов. В TRSDOS / LS-DOS 6.x файлы можно сделать невидимыми для команд DIR и CAT, и они могут отображаться с параметром INV (если какие-либо файлы не защищены паролем и не указан правильный пароль).

TRSDOS / LS-DOS 6.3 может выгружать видеоэкран на строчный принтер, нажав CTRL+ :.

Многие версии поддерживают простую защиту паролем для файлов и программ с отдельными функциями чтения / выполнения и полным доступом. Пример : имя файла / внешний пароль: номер диска . TRSDOS 6.x поддерживает пароли владельца и пользователя (максимум 8 символов) для файлов на диске. LS-DOS 6.3 использует пространство для пароля пользователя для своей расширенной схемы знакомств (после 31 декабря 1987 г.). Обе ОС Model 4 могут устанавливать различные уровни доступа к файлам и разрешать программную защиту от записи для дисковых файлов и целых дисков.

Команды [ править ]

Хотя MS-DOS больше всего обязана своим наследием CP / M, а затем TOPS-10 , многие команды манипулирования файлами очень похожи на команды TRSDOS. Для сравнения, команда CP / M для копирования файлов называлась pip (как каламбур на принтерах Pip, так и цепочка центров копирования в ту эпоху, и аббревиатура от «Peripheral Interchange Program»).

Некоторые типичные утилиты TRSDOS:

Ссылки [ править ]

  1. ^ Белый, Рон (август 1987). «История Тэнди: Все началось 10 лет назад в переделанном салоне подержанных автомобилей ...» 80 Micro . стр.  50 -64 . Проверено 18 мая 2019 .
  2. Перейти ↑ Archer, Rowland Jr. (октябрь 1983 г.). "Radio Shack's TRS-80 Model 4" . БАЙТ . С. 292–302 . Проверено 31 января 2015 года .
  3. ^ "1985 Компьютерный каталог Radio Shack RSC-12 страница 28" . radioshackcatalogs точка com . Тэнди / Radio Shack . Проверено 7 мая 2019 года .
  4. ^ «Источник» . trs-80 dot org . Мэтью Рид . Проверено 21 мая 2019 года .
  5. ^ Солтофф, Рой. «Руководство программиста по TRSDOS 6» (PDF) . Timm-Mann dot org . Misosys Inc . Проверено 4 ноября 2019 года .
  • Клейс, Майкл (19 февраля 2000 г.). "TRS-80 Model I TRSDOS" . Виртуальный компьютерный музей Майка . Архивировано из оригинального 21 февраля 2006 года.

Внешние ссылки [ править ]

  • [1] Сводка пользовательских команд TRSDOS / LS-DOS 6.x
  • Сообщения об ошибках TRS-80
  • TRS-80 возрожденный сайт
  • Домашняя страница Model III (со списком альтернатив TRSDOS на TRS-80 Model III)
  • Программное обеспечение эмулятора TRS-80 Мэтью Рида работает под MS-DOS ; требует извлечения образа ПЗУ
  • xtrs Эмулятор TRS-80 для UNIX и X11; применимы аналогичные проблемы с ПЗУ
  • TRSdisk , утилиты TRSDOS для UNIX
  • Менеджер виртуальных гибких дисков TRS-80
  • Приложения TRSDOS