Программирование на Ассемблере
oldname: dc.b \"Testfile\",0
newname: dc.b \"Backup\",0
6.5.5. Команды CLI. Представьте, что Вы написали, к примеру, текстовый редактор и хотите
добавить к нему функцию загрузки файла с диска. Согласитесь, что редко
удается с первого раза правильно ввести имя нужного файла, не зная
содержимого текущего каталога.
Для решения этой проблемы можно предварительно вывести имена всех файлов на
экран. Рассмотрим, как можно проще всего это сделать.
Библиотека \"dos.library\" содержит функцию Execute, которая позволяет
выполнять команды интерпретатора командной строки не выходя из Вашей
программы. Эта функция имеет смещение -222 и вызывается с тремя
параметрами: в D1 указатель на ASCII-строку, содержащую имя команды для
выполнения в формате интерпретатора командной строки (CLI).
в D2 идентификатор файла ввода. Обычно этот параметр содержит ноль,
однако указав идентификатор какого-либо текстового файла, Вы
можете выполнять последовательности команд, записанные в этом
файле. Более того, задав вместо этого идентификатор консоли,
Вы фактически открываете новое CLI-окно.
в D3 идентификатор файла вывода. Если этот параметр равен нулю,
стандартный вывод выполняемых команд будет направлен на
CLI-консоль. Предположим, что Вы уже открыли библиотеку dos.library и окно ввода/вывода.
Тогда для вызова функции Execute Вы можете использовать следующую
подпрограмму: Execute = -222 ;(6.5.5)
...
dir:
move.l dosbase(PC),A6 ;база dos.library
move.l #command,D1 ;указатель на строку команды
moveq #0,D2
move.l conhandle(PC),D3 ;вывод
jsr Execute(A6) ;выполняем команду
rts command: dc.b \'dir\',0 ;команда для выполнения
Вместо \'dir\' мы могли бы написать любую другую команду CLI (например,
\'list\').
|