Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Programuv_good.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
990.21 Кб
Скачать

Програми, резидентні в пам'яті

Існує іще одна процедура, яка відноситься до процедур управління процесами. Це процедура Keep. Її форма така:

Keep (ExitCode: WORD);

Виклик цієї процедури призводить до завершення роботи програми, але при цьому залишає її в пам'яті. Такі програми носять назву програм, резидентних в пам'яті, чи просто резидентних програм. На цьому принципі побудовані драйвери пристроїв і різноманітні сервісні програми. Зробити резидентною можна як програму типу COM, так і програму типу EXE, однак так як із-за відмінностей у внутрішній структурі програми типу COM займають в пам'яті менше місця, то резидентні програми частіше всього реалізують в цій формі. Після того як програма залишилась резидентною в пам'яті, вона передає управління командному процесору, а сама якби „ завмирає”. Для того щоб активізуватися в потрібний момент, програма обов’язково повинна перехватити яке-небудь переривання, наприклад, переривання від клавіатури. Після натиснення потрібної комбінації клавіш програма перехвачує управління і виконує свою задачу.

Процедури роботи з датою і часом

Модуль DOS представляє програмісту можливість доступу до системних часів і календаря, а також дає можливість змінити дату і час створення файлу. Для доступу до системної дати використовують процедури GetDate і SetDate.

Процедура

GetDate (year, month, day, day_of_week: WORD);

повертає поточну дату, встановлену в системі.

Процедура

SetDate (year, month, day: WORD);

встановлює поточну дату в системі.

Для доступу до системних часів використовуються процедури SetTime і GetTime. Так як і процедури GetDate і SetDate, процедури роботи з системним часом дозволяють просто отримувати і змінювати значення системного часу і можуть використовуватися, наприклад, для визначення тривалості виконання частин програми і програми в цілому.

Процедура

GetTime (VAR hour, minute, second, hund: WORD);

повертає поточний час, встановлений в системі.

Процедура

SetTime (hour, minute, second, hund: WORD);

встановлює поточний час в операційній системі.

Для роботи з датою створення файлу використовується процедура

GetFTime (VAR F: VAR Time: LONGINT);

яка повертає час і дату створення файлу. Змінна F повинна бути файловою змінною. Час і дата повертається в змінній Time в упакованому форматі у вигляді подвійного слова (32 біта), і для їх розпаковки використовується процедура

UnpackTime (Time: LONGINT; VAR DT: DateTime);

Ця процедура перетворює значення, передане в параметрі Time, а запис DT типу DateTime (дата і час).

Щоб змінити дату створення файлу, використовуються дві інші процедури: PackTime i SetFTime.

Процедура

PackTime (VAR T: DateTime; VAR Time: LONGINT);

перетворює запис типу DateTime в подвійне слово, яке використовується процедурою

SetFTime (VAR F; Time: LONGINT);

Ця процедура встановлює дату створення файла.

Процедури і функції перевірки стану диску

Модуль DOS містить ряд функцій і процедур для роботи з диском. З їх допомогою можна здійснювати контроль за наявності вільного простору на диску, контроль правильності запису на диск, а також визначати загальний об’єм диску.

Функція

DiskFree (Drive: BYTE): LONGINT;

повертає кількість вільних байтів на вказаному диску, де Drive – задає номер диску: 0 – поточний диск, тобто той диск, з якого запущена програма; 1 – дисковод А, 2 – дисковод В, 3 – диск С, 4 – диск D і так далі.

Якщо номер диску заданий некоректно, то функція повертає значення 1. таким чином, завжди є можливість проконтролювати правильність виклику функції.

Функція

DiskSize (Drive: BYTE): LONGINT;

повертає загальну кількість байтів на вказаному диску, де Drive задає номер диску. Номер диску задається так само, як і для функції DiskFree.

Процедура GetVerify використовується для отримання значення прапора перевірки DOS, який має назву Verify. Цей прапор слугує для визначення методу запису даних на диск. Якщо Verify знаходиться у включеному стані, тобто дорівнює ON (істинна), то після того, як інформація записана на диск, вона знову читається і порівнюється з оригіналом (звідси його назва Verify – перевіряти). Якщо ж прапор знаходиться у вимкнутому стані, тобто OFF (обман), то інформація записується на диск без перевірки. Існують різні погляди з приводу того, чи варто вмикати даний прапор під час роботи, але практика показує, що вінчестер – досить надійний пристрій і інформація на нього або записується добре, або не записується зовсім. До того ж дана перевірка правильності запису сильно зношує вінчестер і дисководи (адже потрібно записувати, а потім ще і читати) і значно збільшує час запису. Тому вмикати цей прапор необхідно, коли цінна інформація записується з вінчестера на гнучкі диски. Формат процедури наступний:

GetVerify (VAR Verify: BOOLEAN);

Процедура ставить в параметр Verify значення ON, проходить перевірка правильності запису інформації на всі диски, якщо OFF – інформація записується без перевірки.

Як вже було сказано, якщо виникає необхідність переконатися в правильності запису важливої інформації на диск, необхідно включити прапор перевірки. Для цього призначена процедура

SetVerify (Verify: BOOLEAN);

яка встановлює чи відмінює прапор перевірки в залежності від параметру Verify.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]