Дополнительные команды AVR-DOS — различия между версиями

Материал из roboforum.ru Wiki
Перейти к: навигация, поиск
(Новая: '''Список команд DOS''' — нижеследующий список команд для [[операционная си...)
 
(понемножку добавляю команды)
Строка 1: Строка 1:
'''Список команд DOS''' — нижеследующий список [[команда (программирование)|команд]] для [[операционная система|операционной системы]] [[DOS (операционная система)|DOS]]. Начиная с 5-й версии, этот список с кратким описанием каждой команды может быть получен набором команды <code>HELP</code>. Также начиная с 5-й версии справка по конкретной команде может быть получена набором символов '''<code>/?</code>''' после имени команды.  
+
'''Список команд AVR-DOS''' — нижеследующий список команд для операционной системы [[Запускаем AVR-DOS на SD-Card МиниБота|AVR-DOS]].
  
Например, набор команды
+
== Диск/Директория ==
<pre>
+
=== InitFileSystem ===
C:\>ren /?
+
Читает Master boot record и partition boot record (Sector) флэшкарты и инициализирует файловую систему.
</pre>
 
приведёт к получению справки по команде <code>ren</code>:
 
<pre>
 
Переименование одного или нескольких файлов.
 
  
RENAME [диск:][путь]имя_файла1 имя_файла2.
+
'''Эта функция должна быть вызвана перед любым другим использованием системы!'''
REN [диск:][путь]имя_файла1 имя_файла2.
 
  
Для конечного файла нельзя указать другой диск или каталог.
+
<code>bErrorCode = InitFileSystem (bPartitionNumber)</code>
</pre>
 
  
Все команды DOS являются ''нечувствительными к [[регистр букв|регистру букв]]'', то есть любая команда может быть набрана как строчными, так и заглавными буквами.
+
{| class="wikitable"
 +
| bErrorCode(Byte)
 +
| Error Result from Routine, Returns 0 if no Error
 +
|-
 +
| bPartitionNumber(Byte)
 +
| Partitionnumber on the Flashcard Drive (normally 1, but use 0 on mediums without Master boot record)
 +
|}
  
== Команды ==
+
Пример вызова:
=== attrib ===
 
Вывод и изменение атрибутов файлов.
 
  
ATTRIB <code>[+R | -R] [+A | -A ] [+S | -S] [+H | -H] [диск:] [путь] [имя_файла] [/S] [/D]</code>
+
<pre>Dim bErrorCode as Byte
 +
bErrorCode = InitFileSystem(1)
 +
If bErrorCode > 0 then
 +
Print "Error: " ; bErrorCode
 +
Else
 +
Print "Filesystem successfully initialized"
 +
End If
 +
</pre>
  
+  Установка атрибута.
+
=== DiskSize ===
-  Снятие атрибута.
+
Возвращает размер диска.
R  Атрибут "Только чтение".
 
A  Атрибут "Архивный".
 
S  Атрибут "Системный".
 
H  Атрибут "Скрытый".
 
[диск:] [путь] [имя_файла]
 
    Указание файла или набора файлов для обработки.
 
/S  Обработка файлов с указанными именами в текущей папке
 
    и во всех ее подпапках.
 
/D  Обработка и файлов, и папок.
 
  
Эквивалентна команде Unix [[chmod]].
+
<code>lSize = DiskSize ()</code>
  
=== cd or chdir ===
+
{| class="wikitable"
Вывод имени либо смена текущего каталога.
+
| lSize(Long)
 +
| Объем диска в КБайтах
 +
|}
  
CHDIR <code>[/D] [диск:][путь]</code>
+
Пример вызова:
CHDIR <code>[..]</code>
 
CD <code>[/D] [диск:][путь]</code>
 
CD <code>[..]</code>
 
  
  ..  обозначает переход в родительский каталог.
+
<pre>Dim Gbtemp1 As Byte ' scratch byte
 +
Gbtemp1 = Initfilesystem(1) ' we must init the filesystem once
 +
If Gbtemp1 > 0 Then
 +
Print #1 , "Error " ; Gbtemp1
 +
Else
 +
Print #1 , " OK"
 +
Print "Disksize : " ; Disksize() ' show disk size in Kbytes
 +
Print "Disk free: " ; Diskfree() ' show free space too
 +
End If
 +
</pre>
  
Команда CD диск: отображает имя текущего каталога указанного диска.
+
=== DiskFree ===
Команда CD без параметров отображает имена текущих диска и каталога.
+
Возвращает размер свободного пространства диска.
  
Параметр /D используется для одновременной смены
+
<code>lFreeSize = DiskFree ()</code>
текущих диска и каталога.
 
  
Изменение команды CHDIR при включении расширенной обработки команд:
+
{| class="wikitable"
 +
| lFreeSize(Long)
 +
| Размер свободной области в КБайтах
 +
|}
  
Имя текущего каталога в строке вызова преобразуется к тому же регистру
+
Пример вызова:
символов, что и для существующих имен на диске.  Так, команда CD C:\TEMP
 
на самом деле сделает текущим каталог C:\Temp, если он существует на диске.
 
  
Команда CHDIR перестает рассматривать пробелы как разделители, что позволяет
+
<pre>Dim Gbtemp1 As Byte ' scratch byte
перейти в подкаталог, имя которого содержит пробелы, не заключая все имя
+
Gbtemp1 = Initfilesystem(1) ' we must init the filesystem once
каталога в кавычки.  Например:
+
If Gbtemp1 > 0 Then
 +
Print #1 , "Error " ; Gbtemp1
 +
Else
 +
Print #1 , " OK"
 +
Print "Disksize : " ; Disksize() ' show disk size in Kbytes
 +
Print "Disk free: " ; Diskfree() ' show free space too
 +
End If
 +
</pre>
  
    chdir \winnt\profiles\username\programs\start menu
+
=== Kill ===
 +
Удаляет файл с диска. Открытый файл не может быть удален. Специальные символы(WildCards) в имени файла, маски не поддерживаются. Код ошибки хранится в глобальной переменной gDOSError.
  
приводит к тому же результату, что и:
+
<code>Kill sFileName</code>
  
    cd "\winnt\profiles\username\programs\start menu"
+
{| class="wikitable"
 +
| sFileName(String)
 +
| Полный или относительный(?) путь к файлу
 +
|}
  
При отключении расширенной обработки команд используется только второй вариант.
+
Пример вызова:
:Эквивалентна команде Unix <code>cd</code> (с параметрами), или <code>pwd</code> (без параметров).
 
  
=== chkdsk ===
+
<pre>'We can use the KILL statement to delete a file.
Проверка диска и вывод отчета.
+
'A file mask is not supported
 +
Print "Kill (delete) file demo"
 +
Kill "test.txt"
 +
</pre>
  
 +
=== Dir ===
 +
Возвращает имя файла, удовлетворяющее маске.
  
CHKDSK <code>[том:[[путь]имя_файла]] [/F] [/V] [/R] [/X] [/I]  [/C] [/L[:размер]]</code>
+
Первый вызов функции содержит маску. Все последующие вызовы совершаются без маски. Фактически, когда вы хотите получить имя следующего файла в данной директории, удовлетворяющее маске, вы должны вызывать вариант функции без параметров после первого вызова.
  
 +
<code>sFile = Dir(mask)</code>
 +
<code>sFile = Dir()</code>
  
  Том          Определяет точку подключения, имя тома или букву проверяемого диска
+
{| class="wikitable"
              с двоеточием.
+
| SFile(String)
  имя_файла    Файлы, проверяемые на наличие фрагментации (только  FAT/FAT32).
+
| Имя файла. Строка пуста, если больше нет файлов, удовлетворяющих маске.
  /F            Исправление ошибок на диске.
+
|-
  /V            Для FAT/FAT32: вывод полного пути и имени для каждого файла
+
| Mask(String)
                на этом диске.
+
| Файловая маска, удовлетворяющая требованиям обычного DOS, напр. '*.TXT'. Маска *.* удовлетворяет всем файлам
                Для NTFS: также вывод сообщений об очистке.
+
|}
  /R            Поиск поврежденных секторов и восстановление их содержимого.
 
                (требует /F).
 
  /L:размер    Только для NTFS: изменение размера файла журнала до указанной
 
                величины (в КБ). Если размер не указан, выводится текущее
 
                значение размера.
 
  /X            При необходимости предварительное отключение
 
                тома. Все открытые дескрипторы для этого тома будут
 
                недействительны. (требует /F).
 
  /I            Только для NTFS: менее строгая проверка индексных элементов.
 
  /C            Только для NTFS: пропуск проверки циклов внутри структуры папок.
 
  
 +
Пример вызова:
  
Ключи /I или /C укорачивают время выполнения CHKDSK за счет пропуска некоторых
+
<pre>'Lets have a look at the file we created
проверок тома.
+
Print "Dir function demo"
:Эквивалентна команде <code>fsck</code> в Unix.
+
S = Dir( "*.*")
 +
'The first call to the DIR() function must contain a file mask
 +
' The * means everything.
 +
'
 +
While Len(s) > 0 ' if there was a file found
 +
Print S ; " " ; Filedate() ; " " ; Filetime() ; " " ; Filelen()
 +
' print file , the date the fime was created/changed , the time and the size of the file
 +
S = Dir() ' get next
 +
Wend
 +
</pre>
  
=== cls ===
+
=== FileLen ===
:Очищает экран.
+
=== FileDateTime ===
 +
=== FileDate ===
 +
=== FileTime ===
 +
=== GetAttr ===
 +
=== Name ===
 +
=== ChDir ===
 +
=== MkDir ===
 +
=== RmDir ===
  
cls
+
== Файлы ==
:Эквивалентна команде <code>clear</code> в Unix.
+
=== FreeFile ===
 +
=== Open ===
 +
Открывает устройство
  
=== del, erase ===
+
<code>OPEN "device" for MODE As #channel</code>
Удаление одного или нескольких файлов.
 
  
DEL <code>[/P] [/F] [/S] [/Q] [/A[[:]атрибуты]] имена</code>
+
<code>OPEN file FOR MODE as #channel</code>
ERASE <code>[/P] [/F] [/S] [/Q] [/A[[:]атрибуты]] имена</code>
 
  
  имена              Имена одного или нескольких файлов. Для удаления сразу
+
{| class="wikitable"
              нескольких файлов используются подстановочные знаки.
+
| Device
              Если указан каталог, из него будут удалены все файлы.
+
| The default device is COM1 and you don't need to open a channel to use INPUT/OUTPUT on this device.
 +
With the implementation of the software UART, the compiler must know to which pin/device you will send/receive the data.
 +
So that is why the OPEN statement must be used. It tells the compiler about the pin you use for the serial input or output and the baud rate you want to use.
 +
COMB.0:9600,8,N,2 will use PORT B.0 at 9600 baud with 2 stopbits.
  
  /P          Запрос на подтверждение перед удалением каждого файла.
+
The format for COM1 and COM2 is : COM1: or COM2:
  /F          Принудительное удаление файлов, доступных только для чтения.
 
  /S          Удаление указанных файлов из всех подкаталогов.
 
  /Q          Отключение запроса на подтверждение при удалении файлов.
 
  /A          Отбор файлов для удаления по атрибутам.
 
  атрибуты    S  Системные файлы      R  Доступные только для чтения
 
              H  Скрытые файлы        A  Файлы для архивирования
 
              Префикс "-" имеет значение НЕ
 
  
Изменение команд DEL и ERASE при включении расширенной обработки команд:
+
There is no speed/baud rate parameter since the default baud rate will be used that is specified with $BAUD or $BAUD1
  
Результаты вывода для ключа /S принимают обратный характер, то есть выводятся
+
The format for the software UART is: COMpin:speed,8,N,stopbits[,INVERTED]
только имена удаленных файлов, а не файлов, которые не удалось найти.
+
Where pin is the name of the PORT-pin.
:Эквивалентна команде <code>rm</code> в Unix..
+
Speed must be specified and stop bits can be 1 or 2.
 +
7 bit data or 8 bit data may be used.
 +
For parity N, O or E can be used.
  
=== deltree ===
+
An optional parameter ,INVERTED can be specified to use inverted RS-232.
:Удаление директории вместе с файлами и другими директориями, которые она включает.
+
Open "COMD.1:9600,8,N,1,INVERTED" For Output As #1 , will use pin PORTD.1 for output with 9600 baud, 1 stop bit and with inverted RS-232.
  
deltree <code>[/y] ''директория''</code>
+
  
В Unix, функциональность <code>deltree</code> предоставляется командой <code>rm</code> с параметром <code>-r</code>.
+
For the AVR-DOS filesystem, Device can also be a string or filename constant like
  
=== dir ===
+
"readme.txt" or sFileName
Вывод списка файлов и подкаталогов из указанного каталога.
+
|-
 +
| Mode
 +
| You can use BINARY or RANDOM for COM1 and COM2, but for the software UART pins, you must specify INPUT or OUTPUT.
  
DIR <code>[диск:][путь][имя_файла] [/A[[:]атрибуты]] [/B] [/C] [/D] [/L] [/N]</code>
+
For the AVR-DOS filesystem, MODE may be INPUT, OUTPUT, APPEND or BINARY.
<code>[/O[[:]порядок]] [/P] [/Q] [/S] [/T[[:]время]] [/W] [/X] [/4]</code>
+
|-
 +
| Channel
 +
| The number of the channel to open. Must be a positive constant >0.
  
  [диск:][путь][имя_файла]
+
For the AVR-DOS filesystem, the channel may be a positive constant or a numeric variable. Note that the AVD-DOS filesystem uses real filehandles. The software UART does not use real file handles.
            Диск, каталог и/или файлы, которые следует включить в список.
+
|}
  
  /A        Вывод файлов с указанными атрибутами.
+
Пример вызова:
  атрибуты  D  Каталоги                    R  Доступные только для чтения
 
            H  Скрытые файлы              A  Файлы для архивирования
 
            S  Системные файлы            Префикс "-" имеет значение НЕ
 
  /B        Вывод только имен файлов.
 
  /C        Применение разделителя групп разрядов для вывода размеров файлов
 
            (по умолчанию).  Для отключения этого режима служит ключ /-C.
 
  /D        Вывод списка в несколько столбцов с сортировкой по столбцам.
 
  /L        Использование нижнего регистра для имен файлов.
 
  /N        Отображение имен файлов в крайнем правом столбце.
 
  /O        Сортировка списка отображаемых файлов.
 
  порядок    N  По имени (алфавитная)      S  По размеру (сперва меньшие)
 
            E  По расширению (алфавитная)  D  По дате (сперва более старые)
 
            G  Начать список с каталогов  Префикс "-" обращает порядок
 
  /P        Пауза после заполнения каждого экрана.
 
  /Q        Вывод сведений о владельце файла.
 
  /S        Вывод списка файлов из указанного каталога и его подкаталогов.
 
  /T        Выбор поля времени для отображения и сортировки
 
  время      C  Создание
 
            A  Последнее использование
 
            W  Последнее изменение
 
  /W        Вывод списка в несколько столбцов.
 
  /X        Отображение коротких имен для файлов, чьи имена не соответствуют
 
            стандарту 8.3. Формат аналогичен выводу с ключом /N, но короткие
 
            имена файлов выводятся слева от длинных. Если короткого имени у
 
            файла нет, вместо него выводятся пробелы.
 
  /4        Вывод номера года в четырехзначном формате
 
  
Стандартный набор ключей можно записать в переменную среды DIRCMD. Для отмены
+
<pre>OPEN "com1:" for binary as #1
их действия введите в команде те же ключи с префиксом "-", например: /-W.
+
Call test
:Эквивалентна команде <code>ls</code> в unix.
+
End
 +
Sub test
 +
Print #1, "test"  
 +
End Sub
 +
Close #1
 +
</pre>
  
=== format ===
+
=== Close ===
Форматирование диска.
+
=== Flush ===
 +
=== Print ===
 +
=== Write ===
 +
=== Input ===
 +
=== Line Input ===
 +
=== Get ===
 +
=== Put ===
 +
=== Seek ===
  
FORMAT <code>том: [/FS:система] [/V:метка] [/Q] [/A:размер] [/C] [/X]</code>
+
== Свойства файла ==
 +
=== EOF ===
 +
=== LOC ===
 +
=== LO ===
 +
=== FileAttr ===
  
FORMAT <code>том: [/V:метка] [/Q] [/F:размер]</code>
+
== Другие ==
 
+
=== Bload ===
FORMAT <code>тома: [/V:метка] [/Q] [/T:дорожки /N:секторы]</code>
+
=== Bsave ===
 
 
FORMAT <code>тома: [/V:метка] [/Q]</code>
 
 
 
FORMAT <code>том [/Q]</code>
 
 
 
  том            Указывает букву диска (с последующим двоеточием),
 
                  точку подключения или имя тома.
 
  /FS:filesystem  Указывает тип файловой системы (FAT, FAT32 или NTFS).
 
  /V:метка        Метка тома.
 
  /Q              Быстрое форматирование.
 
  /C              Только для NTFS: Установка режима сжатия по умолчанию для
 
                  всех файлов, создаваемых на новом томе.
 
  /X              Инициирует отключение тома, в качестве первого действия, если
 
                это необходимо. Все открытые дескрипторы тома будут неверны.
 
  /A:размер        Заменяет размер кластера по умолчанию. В общих случаях
 
                  рекомендуется использовать размеры кластера по умолчанию.
 
                  NTFS поддерживает размеры 512, 1024, 2048, 4096, 8192, 16КБ,
 
                  32КБ, 64K.
 
                  FAT поддерживает размеры 512, 1024, 2048, 4096, 8192, 16КБ,
 
                  32КБ, 64КБ, (128КБ, 256КБ для размера сектора > 512 Байт).
 
                  FAT32 поддерживает размеры 512, 1024, 2048, 4096, 8192, 16КБ,
 
                  32КБ, 64КБ, (128КБ, 256КБ для размера сектора > 512 Байт).
 
 
 
                  Файловые системы FAT и FAT32 налагают следующие ограничения
 
                  на число кластеров тома:
 
 
 
                  FAT: число кластеров <= 65526
 
                  FAT32: 65526 < число кластеров < 4177918
 
 
 
                  Выполнение команды Format будет немедленно прервано, если
 
                  будет обнаружено нарушение указанных выше ограничений,
 
                  используя указанный размер кластеров.
 
 
 
                  Сжатие томов NTFS не поддерживается для размеров кластеров
 
                  более 4096 Байт.
 
 
 
  /F:размер      Указывает размер форматируемых гибких дисков (1,44)
 
  /T:дорожки      Число дорожек на каждой стороне диска.
 
  /N:секторы      Число секторов на каждой дорожке.
 
  
 
== См. также ==
 
== См. также ==
 
* [[Запускаем AVR-DOS на SD-Card МиниБота]]
 
* [[Запускаем AVR-DOS на SD-Card МиниБота]]
 
+
* [http://members.aon.at/voegel/index.html Официальная страница AVR-DOS]
 
 
{{compu-soft-stub}}
 
  
 
[[Категория:МиниБот]]
 
[[Категория:МиниБот]]

Версия 11:13, 6 января 2009

Список команд AVR-DOS — нижеследующий список команд для операционной системы AVR-DOS.

Диск/Директория

InitFileSystem

Читает Master boot record и partition boot record (Sector) флэшкарты и инициализирует файловую систему.

Эта функция должна быть вызвана перед любым другим использованием системы!

bErrorCode = InitFileSystem (bPartitionNumber)

bErrorCode(Byte) Error Result from Routine, Returns 0 if no Error
bPartitionNumber(Byte) Partitionnumber on the Flashcard Drive (normally 1, but use 0 on mediums without Master boot record)

Пример вызова:

Dim bErrorCode as Byte
bErrorCode = InitFileSystem(1)
If bErrorCode > 0 then
Print "Error: " ; bErrorCode
Else
Print "Filesystem successfully initialized"
End If

DiskSize

Возвращает размер диска.

lSize = DiskSize ()

lSize(Long) Объем диска в КБайтах

Пример вызова:

Dim Gbtemp1 As Byte ' scratch byte
Gbtemp1 = Initfilesystem(1) ' we must init the filesystem once
If Gbtemp1 > 0 Then
Print #1 , "Error " ; Gbtemp1
Else
Print #1 , " OK"
Print "Disksize : " ; Disksize() ' show disk size in Kbytes
Print "Disk free: " ; Diskfree() ' show free space too
End If

DiskFree

Возвращает размер свободного пространства диска.

lFreeSize = DiskFree ()

lFreeSize(Long) Размер свободной области в КБайтах

Пример вызова:

Dim Gbtemp1 As Byte ' scratch byte
Gbtemp1 = Initfilesystem(1) ' we must init the filesystem once
If Gbtemp1 > 0 Then
Print #1 , "Error " ; Gbtemp1
Else
Print #1 , " OK"
Print "Disksize : " ; Disksize() ' show disk size in Kbytes
Print "Disk free: " ; Diskfree() ' show free space too
End If

Kill

Удаляет файл с диска. Открытый файл не может быть удален. Специальные символы(WildCards) в имени файла, маски не поддерживаются. Код ошибки хранится в глобальной переменной gDOSError.

Kill sFileName

sFileName(String) Полный или относительный(?) путь к файлу

Пример вызова:

'We can use the KILL statement to delete a file.
'A file mask is not supported
Print "Kill (delete) file demo"
Kill "test.txt"

Dir

Возвращает имя файла, удовлетворяющее маске.

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

sFile = Dir(mask) sFile = Dir()

SFile(String) Имя файла. Строка пуста, если больше нет файлов, удовлетворяющих маске.
Mask(String) Файловая маска, удовлетворяющая требованиям обычного DOS, напр. '*.TXT'. Маска *.* удовлетворяет всем файлам

Пример вызова:

'Lets have a look at the file we created
Print "Dir function demo"
S = Dir( "*.*")
'The first call to the DIR() function must contain a file mask
' The * means everything.
'
While Len(s) > 0 ' if there was a file found
Print S ; " " ; Filedate() ; " " ; Filetime() ; " " ; Filelen()
' print file , the date the fime was created/changed , the time and the size of the file
S = Dir() ' get next
Wend

FileLen

FileDateTime

FileDate

FileTime

GetAttr

Name

ChDir

MkDir

RmDir

Файлы

FreeFile

Open

Открывает устройство

OPEN "device" for MODE As #channel

OPEN file FOR MODE as #channel

Device The default device is COM1 and you don't need to open a channel to use INPUT/OUTPUT on this device.

With the implementation of the software UART, the compiler must know to which pin/device you will send/receive the data. So that is why the OPEN statement must be used. It tells the compiler about the pin you use for the serial input or output and the baud rate you want to use. COMB.0:9600,8,N,2 will use PORT B.0 at 9600 baud with 2 stopbits.

The format for COM1 and COM2 is : COM1: or COM2:

There is no speed/baud rate parameter since the default baud rate will be used that is specified with $BAUD or $BAUD1

The format for the software UART is: COMpin:speed,8,N,stopbits[,INVERTED] Where pin is the name of the PORT-pin. Speed must be specified and stop bits can be 1 or 2. 7 bit data or 8 bit data may be used. For parity N, O or E can be used.

An optional parameter ,INVERTED can be specified to use inverted RS-232. Open "COMD.1:9600,8,N,1,INVERTED" For Output As #1 , will use pin PORTD.1 for output with 9600 baud, 1 stop bit and with inverted RS-232.


For the AVR-DOS filesystem, Device can also be a string or filename constant like

"readme.txt" or sFileName

Mode You can use BINARY or RANDOM for COM1 and COM2, but for the software UART pins, you must specify INPUT or OUTPUT.

For the AVR-DOS filesystem, MODE may be INPUT, OUTPUT, APPEND or BINARY.

Channel The number of the channel to open. Must be a positive constant >0.

For the AVR-DOS filesystem, the channel may be a positive constant or a numeric variable. Note that the AVD-DOS filesystem uses real filehandles. The software UART does not use real file handles.

Пример вызова:

OPEN "com1:" for binary as #1
Call test
End
Sub test
Print #1, "test" 
End Sub
Close #1

Close

Flush

Print

Write

Input

Line Input

Get

Put

Seek

Свойства файла

EOF

LOC

LO

FileAttr

Другие

Bload

Bsave

См. также