Amiga. Вычислительная техника
Меню сайта
Главная
Amiga
Amiga Corporation
Модельный ряд
История развития
Аппаратная платформа
Операционные системы
Эмуляция
AMIGA # 1
Программирование на Ассемблере
Организация процессоров
Методы защиты информации
Компьютерные новеллы
Боятся ли компьютеры адского пламени?
Виртуальная реальность
Корпоративные сети
Телекоммуникационные сети
Архитектура ЭВМ
ЕС ЭВМ
Рождение ЭВМ
Компьютер
Гарвардская архитектура
Современные высокопроизводительные компьютеры
Дорога в будущее
Vista
Инфоpматика
ЭВМ
Операционные системы
Linux
Windows
Освой компьютер
Макинтош
Набор текста
Поколения
Компьютерная грамотность
Устройство компьютера
Железо
Графика
Звук
Ремонт
Сети
Программирование
Информационные технологии
Криптография
Микроэлектроника
Истории
 
 

Программирование на Ассемблере



Команда CHANGESTATE (код 14) возвращает нулевое значение, если в дисководе
присутствует диск. Иначе возвращается $FF.
Если диск не защищен от записи, то команда PROTSTATUS (код 15) возвращает
ноль. В противном случае возвращается значение $FF.
Теперь поговорим о командах READ и WRITE. Для этих команд требуются
следующие параметры: адрес буфера ввода/вывода, количество байтов для
чтения/записи, а также начальное смещение на диске.
Поскольку trackdisk.device работает с целыми секторами (размер сектора =
512 байт), количество байтов для чтения/записи должно быть кратно числу 512.
Начальное смещение на диске задается в байтах. Таким образом, для первого
сектора этот параметр должен быть равен нулю, для второго - 512, и так
далее:

Смещение = (Номер_Сектора - 1) * 512.
Вот пример программы, которая считывает первые два сектора диска в
некоторый буфер:
test: ;(6.4.6C)

lea diskio(PC),A1

move #2,28(A1) ;команда READ

move.l #diskbuff,40(A1) ;адрес буфера

move.l #2*512,36(A1) ;количество байт для чтения

move.l #0*512,44(A1) ;начальное смещение на диске

move.l execbase,A6 ;базовый адрес exec.library

jsr SendIO(A6) ;посылаем команду на trackdisk
Протестируйте этот фрагмент в отладчике, наблюдая за содержимым буфера
diskbuff. После выполнения SendIO в этот буфер считается с диска некоторая
служебная информация. Изменив параметр начального смещения (например, на
700*512), Вы сможете наблюдать содержимое секторов данных.
Для записи данных на диск используется команда WRITE, которая вызывается с
такими же параметрами, что и READ. Заметим, что при вызове WRITE данные
попадают на диск не сразу, так как trackdisk.device использует буферизацию
по записи. Реальная модификация трека происходит при переходе на другой
трек или при выполнении специальной команды - UPDATE (код 4).
Команда FORMAT (код 11) также весьма интересна.

 

 

© 2010 Amigo. All Rights Reserved
Создание сайтов ЕкатеринбургШаблоны сайтовПоиск товаров - справочник цен, каталог магазинов, прайс-листыБесплатные шаблоны дизайна компьютерных сайтов
Hosted by uCoz