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

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


Среди них
есть специальный параметр, задающий режим открытия файла (D2). Если
требуется открыть уже существующий файл, то этот параметр должен содержать
число 1005 (mode_old).
Если же Вы хотите создать новый файл, используйте режим mode_new (1006).
Однако следует помнить, что если при открытии в режиме mode_new файл с
таким именем уже существует, то его старое содержимое будет уничтожено!
Чтобы избежать подобных случаев, Ваша программа должна проверять отсутствие
одноименного файла на диске перед его созданием (проверить существование
файла с данным именем можно, например, с помощью системной функции Lock,
о которой речь пойдет в пункте 6.5.6).
Итак, начнем с написания подпрограммы, открывающей требуемый файл. Пусть
ASCII-строка, задающая имя файла, помечена как filename (будем считать, что
эта строка заканчивается нулевым байтом). Для передачи режима открытия
файла нашей подпрограмме будем использовать регистр D2.
После вызова Open мы должны сохранить возвращенный идентификатор открытого
канала в специальной переменной, подобно тому, как мы сохраняли
идентификатор окна (консоли) в переменной conhandle. Если после этого сразу
написать rts, то вызывающая программа сможет обнаружить ошибку открытия
файла по состоянию флага Z (с помощью ветвлений BEQ/BNE).
Подпрограммы открытия и закрытия файлов выглядят так:
Open = -30 ;(6.5.1A)
Close = -36
mode_old = 1005
mode_new = 1006
...
openfile: move.l dosbase(PC),A6 ;базовый адрес dos.library

move.l #filename,D1 ;указатель на имя файла

jsr Open(A6) ;открываем файл

move.l D0,filehd ;сохраняем идентификатор

;(в случае ошибки флаг Z = 1)

rts
closefile:

move.l dosbase(PC),A6

move.l filehd(PC),D1 ;идентификатор закрываемого

;файла

jsr Close(A6) ;закрываем файл

rts
filehd: dc.l 0 ;переменная для хранения

;идентификатора файла
filename: dc.b \"Filename\",0 ;имя открываемого файла

align ;или even

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

 

 

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