Программирование на Ассемблере
звращаем код введенного
;символа
rts MyText: dc.b \'Directory of diskette: DF0:\',10,13,10,13,0
dosname: dc.b \'dos.library\',0
presskey: dc.b \'Press the RETURN key!!\',0
align.w
dosbase: dc.l 0
consolname: dc.b \'CON:0/100/640/100/** Directory-Test **\',0
name: dc.b \'DF0:\',0
align.w
locksav: dc.l 0
fileinfo: ds.l 20 ;или dcb.l 20,0
conhandle: dc.l 0
inbuff: ds.b 8 ;или dcb.b 8,0
inline: ds.b 180 ;или dcb.b 180,0
chbuff: ds.b 82 ;или dcb.b 82,0 end
Наконец, приведем структуру блока FileInfoBlock: Смещение Имя Назначение
------------------------------------------------------------------
0 DiskKey.L ключ каталога (диска)
4 DirEntryType.L тип записи (+ = каталог, - = файл)
8 FileName имя файла (108 байт)
116 Protection.L флаг защиты файла
120 EntryType.L тип записи
124 Size.L размер файла (в байтах)
128 NumBlocks.L количество блоков, занимаемых файлом
132 Days.L дата создания файла (день)
136 Minute.L время создания файла (минуты)
140 Tick.L время создания файла
144 Comment комментарий (116 байт) Теперь Вы можете модифицировать приведенную программу, например, для вывода
размера файла. Для этого можно воспользоваться приведенной в разделе 4
подпрограммой перевода чисел в ASCII-представление, передав ей в качестве
параметра значение поля размера (например,с помощью move.l fileinfo+124,D0) Информация, приводимая в этом разделе, несомненно, весьма полезна, однако
на практике для обеспечения файлового интерфейса обычно используют
специальные библиотеки (например, reqtools.library by Nico Francois).
|