ПРОГРАМА: ПОСТОРІНКОВА ПЕЧАТКА З ЗАГОЛОВКАМИ



Програма, приведена на рис.19.1, аналогічна програмі на рис.9.1, за винятком того, що після введення імен з клавіатури виводить їх не на екран, а на друкуючий пристрій. Кожна надрукована сторінка містить заголовок, і через подвійний інтервал список введених імен у наступному виді:

List of Employee Names Page 01

Clancy Alderson

Ianet Brown

David Christie

Програма підраховує число надрукованих рядків і при досягненні кінця сторінки виконує прогін до початку наступної сторінки. У програмі існують такі процедури:

D10INPT Видає на екран запит і потім вводить ім'я з клавиатури.

E10PRNT Виводить ім'я на друкуючий пристрій (довжина імені береться з вступного списку параметрів); у кінці сторінки викликає процедуру M10PAGE.

M10PAGE Виконує прогін на нову сторінку, друкує заголовок, скидає лічильник рядків і збільшує лічильник сторінок на одиницю.

P100UT Загальна підпрограма для безпосереднього висновку на друкува льний пристрій.

На початку виконання необхідно надрукувати заголовок, але не робити перед цим переклад сторінки. Процедура M10PAGE обходить переклад сторінки, якщо лічильник PAGECTR містить 01 (початкове значення). Поле PAGECTR - визначене як PAGECTR DB '01'. У результаті буде згенеровано число в ASCII коді - тичина. 3031. Процедура M10PAGE збільшує лічильник PAGECTR на 1 так, що значення стає послідовно 3032, 3033 і т.д. Ці значення коректні до 3039, далі випливає 303A, яке буде роздруковано, як двокрапка (:). Тому, якщо в правому байті лічильника PAGECTR з'являється тичина 3A, то це значення заміняється на тичину 30, а до лівого байта додається одиниця. У такий спосіб тичина 303A перекодується в тичину 3130, тобто в 10 у символьному представленні.

Перевірка на кінець сторінки до (але не після) печатки імені гарантує, що на останній сторінці буде надруковане по крайній мірі одне ім'я під заголовком.

ПЕЧАТКА ASCII-ФАЙЛІВ І ТАБУЛЯЦІЯ

Табуляція, яка забезпечується, наприклад, відеоадаптерами, полягає в заміні одного символу табуляції (код 09) декількома пробілами при висновку так, щоб наступна позиція була кратна 8. Таким чином, стандартні позиції табуляції є 8, 16, 24 і т.д. Багато принтерів, однак, ігнорують символи табуляції. Тому, така програма, як DOS PRINT, призначена для печатки ASCII файлів (наприклад асемблерних вихідних текстів) перевіряє кожен символ, посилається на принтер. І, якщо виявляється символ табуляції, то програма видає кілька пробілів до позиції кратної 8.

Програма, приведена на рис 19.2, виводить на екран запит на введення імені файлу і, потім, друкує вміст зазначеного файлу. Ця програма на відміну від приведеної на рис.17.3 (виведення файлів на екран) здійснює заміну виведених символів табуляції на відповідне число пробілів. У результаті символ табуляції в позиціях від 0 до 7 приводить до переходу на позицію 8, від 8 до 15 - на 16 і т.д. Команди, що реалізують дану логіку, знаходяться в процедурі G10XFER після мітки G60. Розглянемо три приклади обробки символу табуляції:

 

 

У програмі організовані наступні процедури:

З10PRMP Запитує введення імені файлу. Натискання тільки клавіші

Return приводить до завершення роботи програми.

E10OPEN Відкриває дисковий файл по зазначеному імені.

G10XFER Контролює кінець сектора, кінець файлу, кінець області висновку, символи "переклад рядка" і табуляціі. Пересилає звичайні символи в область висновку.

P10PRNT Роздруковує вивідний рядок і очищає область висновку.

R10READ Зчитує сектор з дискового файлу.

Коди "повернення каретки", "переклад рядка" і "прогін сторінки" дійсні для будь-яких принтерів. Можна модифікувати програму для підрахунку рядків, що роздруковуються, і виконання прогону сторінки (тичина.OC) при досягненні, наприклад, рядка 62.

Деякі користувачі воліють установлювати символи "прогін сторінки" у ASCII файлах за допомогою текстового редактора в конкретних місцях тексту, наприклад, наприкінці асемблерних процедур. Крім того, можна змінити програму для функції 05 базової версії DOS. Ця функція виконує виведення кожного символу безпосередньо на принтер. Таким чином можна виключити визначення і використання області висновку.


Дата добавления: 2019-07-15; просмотров: 170; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!