Меню
  Список тем
  Поиск
Полезная информация
  Краткие содержания
  Словари и энциклопедии
  Классическая литература
Заказ книг и дисков по обучению
  Учебники, словари (labirint.ru)
  Учебная литература (Читай-город.ru)
  Учебная литература (book24.ru)
  Учебная литература (Буквоед.ru)
  Технические и естественные науки (labirint.ru)
  Технические и естественные науки (Читай-город.ru)
  Общественные и гуманитарные науки (labirint.ru)
  Общественные и гуманитарные науки (Читай-город.ru)
  Медицина (labirint.ru)
  Медицина (Читай-город.ru)
  Иностранные языки (labirint.ru)
  Иностранные языки (Читай-город.ru)
  Иностранные языки (Буквоед.ru)
  Искусство. Культура (labirint.ru)
  Искусство. Культура (Читай-город.ru)
  Экономика. Бизнес. Право (labirint.ru)
  Экономика. Бизнес. Право (Читай-город.ru)
  Экономика. Бизнес. Право (book24.ru)
  Экономика. Бизнес. Право (Буквоед.ru)
  Эзотерика и религия (labirint.ru)
  Эзотерика и религия (Читай-город.ru)
  Наука, увлечения, домоводство (book24.ru)
  Наука, увлечения, домоводство (Буквоед.ru)
  Для дома, увлечения (labirint.ru)
  Для дома, увлечения (Читай-город.ru)
  Для детей (labirint.ru)
  Для детей (Читай-город.ru)
  Для детей (book24.ru)
  Компакт-диски (labirint.ru)
  Художественная литература (labirint.ru)
  Художественная литература (Читай-город.ru)
  Художественная литература (Book24.ru)
  Художественная литература (Буквоед)
Реклама
Разное
  Отправить сообщение администрации сайта
  Соглашение на обработку персональных данных
Другие наши сайты
Приглашаем посетить
  Хлебников (hlebnikov.lit-info.ru)

   

Завантажувач шрифтів

Завантажувач шрифтiв

Мiнiстерство освiти та науки України

Кафедра програмного забезпечення

Курсова робота

з дисциплiни “Програмування на мовi ASM-86” на тему:

Завн а тажувач шрифтiв


З мiст

Вступ

1. Призначення та область застосування програми

2. Огляд iснуючих систем, обгрунтування вибору, принципу розробки i методики побудови програм. Постановка задачi по реалiзацiї технiчного завдання

3. Опис i обгрунтування проектних рiшень по проектуванню системи

4. Розрахунки та експериментальнi матерiали, якi пiдтверджують правильнiсть конструкторських, програмних рiшень. Реалiзацiя проекту

5. Інструкцiя користувача.

6. Основнi висновки

Список лiтератури

Текст програми

Графiчнi матерiали

Вступ

На початку розвитку комп’ютерної технiки пристрої введення та виведення були досить невибагливi та забезпечували мiнiмум можливостей. До цих пристроїв належали перш за все монiтор та клавiатура. Клавiатура використовувалась для введення iнформацiї шляхом натискання деяких клавiш, якi оброблялися вiдповiдним програмним забезпечення, результат цiєї обробки можна було побачити на монiторi. Спочатку цього було досить.

З розвитком iнформацiйних технологiй та технiчним прогресом, процесори почали ставати бiльш швидшими, монiтори та вiдеоадаптери почали збiльшувати роздiльну здатнiсть, все бiльш програм почали використовувати графiчний iнтерфейс користувача. Комп’ютер став не просто електронно-обчислювальною машиною, а багатогранним iнструментом для вирiшення багатьох проблем рiзного характеру, для розваг, для друкарських потреб. Був створений принтер.


простим, щоб його можна було редагувати. Тому була створена ця програма. Вона має невеликi системнi вимоги i є простою у використаннi.

2. Огляд iснуючих пристроїв, систем, програмного забезпечення, обґрунтування вибору принципа розробки та методики побудови пристрою, систем, програмного забезпечення

Є дуже багато програм, якi дозволяють друкувати текст чи файл, та бiльшiсть з них мають внутрiшнi шрифти, якi не можна редагувати. Тож, коли виникає потреба надрукувати текст таким шрифтом, якого не має програма, то приходиться шукати другу програму, яка б дозволила завантажити потрiбний шрифт.

Будь-який МП-системi необхiднi засоби обмiну даними iз зовнiшнiми периферiйними пристроями. В залежностi вiд умов конкретного застосування та характеристик периферiйного обладнання передача даних виконується в паралельному або послiдовному форматi. Спiльнiсть функцiй введення-виведення стимулювала розробку ВІС периферiйних адаптерiв, що являють собою гнучкi програмованi прилади, зорiєнтованi виключно на введення-виведення. Зараз такi адаптери стали неодмiнними компонентами практично всiх мiкропроцесорних сiмейств.

Пiдключення периферiйного обладнання виконується через три двонаправлених 8-бiтних порти (або канали) A, B i C. Інтерфейс iз системною шиною здiйснюється за допомогою лiнiй:

D(0-7) - двонаправлена шина даних з трихстабiльними каскадами.

A1, A0 - лiнiї адреси, котрi вибирають внутрiшнiй регiстр адаптера, комутований на шину даних:

00 - порт A,

01 - порт B,

10 - порт C,

CS - активний вхiд вибiрки кристала; високий рiвень забороняє, а низький дозволяє зв'язок приладу iз системною шиною даних.

RD - активний вхiд зчитування iнформацiї iз адресованого по лiнiям A0, A1 регiстру на шину даних.

WR - активний вхiд запису iнформацiї з шини даних в адресований по A0 i A1 внутрiшнiй регiстр адаптера.

RESET - активний сигнал для приведення приладу у вихiдний стан; при дiї сигналу регiстр управлiння обнуляється, а всi три порта налаштовуються в режим введення.

Вiдмiтимо, що зчитування з регiстру управлiння (RD=0,A1=1,A0=1) не допускається, а одночасний запис та зчитування (RD=0,WR=0) призводять до непередбачуваних наслiдкiв.

Програмування адаптера полягає в завантаженнi управляючого слова в регiстр управлiння. Наприклад, управляюче слово конфiгурацiї порту A на введення в режимi 0, порта B на виведення в режимi 1, бiта 3 порту C на введення та бiта 7 порту C на виведення матиме код 11010101b.

Управляюче слово з нульовим старшим бiтом D7=0 використовується для встановлення i зкидання будь-якого бiту порта C. Бiти D(6-4) в цьому випадку не використовуються i мiстять нулi, бiти D(3-1) мiстять двiйковий номер (адресу) модифiкованого бiта порту С, а бiт D0 задає встановлення (D0=1) або обнулення (D0=0) адресованого бiту.

Адаптер має 3 режима роботи - 0,1,2. Розглянемо кожний з них.

введення або виведення, що забезпечує 16 можливих конфiгурацiй адаптера в режимi 0. Данi, що виводяться, фiксуються в регiстрах-фiксаторах, що входять до складу всiх портiв, а введенi данi не запам'ятовуються, тобто в операцiях зчитування вхiдного порту на шину даних передається поточний стан вхiдних лiнiй.

Режим 0 застосовується при програмно-управляємому введеннi-виведеннi з повiльнодiючими периферiйними пристроями.

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

Режим 1 (стробоване введення-виведення) призначений для однонаправленої передачi даних, iнiцiйованих перериваннями. Власне передача слiв даних здiйснюється через порти B i A, а шiсть лiнiй порту C використовуються для управлiння обмiном. Даний режим надає користу-вачевi такi можливостi: запрограмувати один або два паралельних порти з лiнiями квiтування i переривання, кожний з яких може працювати на введення або виведення; при використаннi тiльки одного порту решту 13 лiнiй запрограмувати в режим 0; при встановленнi двох портiв в режим 1 iншi 2 лiнiї використати для введення або виведення.

квiтування i переривань. Загальна дисциплiна квiтування аналогiчна режиму, але i окремi тригери дозволу переривань по виводу INTE1 (управляється встановленням та зкиданням бiту PC6) та по вводу INTE2 (управляється через бiт PC4). Данi, що вводяться та виводяться, фiксуються в регiстрах-фiксаторах порту.

Принтер є одним iз периферiйних пристроїв, що приймають данi вiд комп'ютера у паралельному кодi, оскiльки це найбiльш швидкий спосiб обмiну. Iншими прикладами пристоїв, що використовують паралельний адаптер, є аналого-цифровi перетворювачi(АЦП), фотоcчитувачi.

Алгоритм обмiну iнформацiї в кожному конкретному випадку залежить вiд напрямку потокiв iнформацiї. Наприклад, АЦП є джерелом iнформацiї, i тому адаптер необхiдно налаштувати на введення iнформацiї. Для цього можна використати рiзнi режими роботи:0,1,2, проте найбiльш простим з них, очевидно, був би режим 0, а надлишково ускладненим - режим 2. Аналогiчна ситуацiя i з принтером, тiльки iнформацiя в цьому випадку передається у зворотньму напрямку - вiд комп'ютера до периферiйного пристрою.

Однак принтер, у свою чергу, виставляє власнi сигнали, iнформуючи комп'ютер про власний стан. Тож доходимо висновку, що для нормальної роботи принтера паралельний адаптер необхiдно налаштувати на виведення iнформацiї, видiливши при тому окремi виводи для введення сигналiв з принтера.

/ASC (acknolege) - пiдтвердження прийому (вiд принтера);

PE (paperempty) - папiр вiдсутнiй (вiд принтера);

/ERROR - збiй у роботi(вiд принтера);

Вибiр режиму роботи:

- якщо обираємо режим 0, то обмiн буде можливий лише за умови програмної емуляцiї системних сигналiв обмiну(тобто посилаємо данi на порт, виставляємо сигнал сигнал /STROBEi чекаємо на сигнал /ASC). Слiд зауважити, що тривалiсть сигналу /ASC вiд принтера має тривалiсть 7. 5 мкс, i тому при органiзацiї циклу опитування слiд полiчити кiлькiсть тактiв у циклii загальну тривалiсть циклу опитування. Якщо вона буде бiльшою вiд тривалостi сигналу, то можливе пропущення сигналу i, як наслiдок, збiй обмiну.

- в режимi роботи 1 операцiї обмiну (handshaking) виконуються автоматично i є можливiсть органiзацiї обмiну даними по перериванню. Робота програми зводиться до програмування адаптера та встановлення у вихiдне (початкове) становище лiнiй, на якi заведено сигнали квiтирування (STROBE-ASC). Слiд додати, що у режимi 1 є двi лiнiї, що можуть бути запрограмованi як на введення, так i на виведення, що дозволяє органiзувати додатково введення iнших сигналiв (у даному випадку - сигналiв BUSY (принтер зайнятий) та РЕ (вiдсутнiсть паперу).

- в режимi 2 можливо органiзувати двонаправлений обмiн iнформацiєю з апаратною пiдтримкою квiтирування, проте при цьому втрачається можливiсть опитування додаткових лiнiй статусу принтера.

Деякi команди принтера:

Таблицi символiв

ESCtn 1b 74 n ;Выбор таблицы символов(0,1,48,49)

LQ-100: 0-3,48-51(2-downloadfont)

ESCRn 1b 52 n ;Выбор медународного набора знаков

(0-13,64)

ESC 7 1b 37 ;Коды 80-9f как управляющие

ESC & 0 nn 1b 26 0 n1 n2 a1 d1 ;Загружает знаки, n1-код первого,

d2... d11 a2... n2-код последнего, a-ширина знака,

старший бит=0-используется нижняя

игла,1-верхняя. Сетка 9х11

1b 26 0 n1 n2 abcДля загрузки (N)LQ сетка 18х12.

d00 d01 d02 d10 d11a-пробел слева от знака, с-справа,

... dc0 dc1 dc2 b-ширина

ESC : 0 n 0 1b 3a 30 n 30 Копирует ПЗУ в ОЗУ, n=0-Roman,1-SS

Графiка

ESC. nn 1b 2ecvhmn1 n2Печать растровой графики:

d1... c=0 обычный режим, 1-со сжатием

v(h)=10,20 3600/v(h) dpi верт(гор)

m=1-24 число верт. точек

n=n2*256+n1 число гор. точек

4. Розрахунки та експерементальнi матерiали, якi пiдтверджують правильнiсть конструкторських, програмних рiшень. Реалiзацiя проекту

Fontload спочатку вiдкриває принтер, а потiм читає файл шрифта в память. Коли вiн не знаходить файл шрифта, вiн повiдомляє про це та закiнчує свою роботу.

В залежностi вiд типу принтера загружає шрифт в принтер, якщо вiн пiддержує, чи друкує рядок в графицi.

5. Інструкцiя користувача

Для запуску програми потрiбно запустити файл fontload. exe. Потiм вказати принтер, у який слiд завантажити шрифт i шлях до файлу зi шрифтом.


Основнi висновки

Коли творилася ця програма, був вивчений паралельний iнтерфейс, його робота, та робота принтера. Програма для завантаження шрифтiв у принтер є структурованою i легко читаємою. Кожен програмiст може вдосконалити її, чи зробити бiльш зручною для себе. Вона не має великих системних запросiв i дуже проста у використаннi.

Використана лiтература

2. ПРОГРАММНО-АППАРАТНАЯ ОРГАНИЗАЦИЯ КОМПЬЮТЕРА IBM PC. Prentice-Hall Publishing Comp.,1984

3. Фролов А. В., Фролов Г. В., Операционная система MS-DOS. – М.: “ДИАЛОГ-МИФИ”, 1991. – (Библиотека системного программиста)

“Руководство по программированию” П. Нортон, Р. Уилтон 1994


Додатки

Лiстинг програми

. model tiny

. stack 200h

. data

Msg1 db 'Выберите пинтер $'

Msg2 db 'Все нормально $'

Msg3 db 'Ошибка откр файла $'

Msg4 db 'выберите шрифтовый файл $'

Msg5 db 'ошибка закр. файла $'

Msg6 db 'Шрифт установлен $'

Handle dw 0

Stroka db 30 DUP(?)

. code

ProgramStart PROC NEAR

mov ax,@data

mov ds,ax

Call Vibor

call clear

Call Init

Call inputer

xor bh,bh

mov di,offset fname+2

mov [bx+di],byte ptr 0

call clear

Call fopen

call clear

Call esca

Call fclose

Quit:

Call outputer

mov ah,07h

mov ah,4ch

int 21h

ProgramStart endp

outputer proc

mov ah,09h

int 21h

ret

outputer endp

inputer proc

mov ah,0ah

int 21h

ret

mov ah,01h

int 21h

ret

Vibor endp

Init PROC NEAR

mov ah,01h

mov dx,1h

int 17h

ret

Init endp

fopen PROC NEAR

mov ah,3dh

mov dx,offset fname+2

mov ah,09h

lea dx,Msg3

int 21h

jmp Quit

ret

fopen endp

escape PROC NEAR

fclose proc

mov ah,3eh

mov bx,[handle]

int 21h

jnc itsok2

mov dx,offset Msg5

ret

fclose endp

esca proc

met1: mov ah,3fh

mov bx,[handle]

mov cx,1

int 21h

call eof

cmp al,0

jz met2

mov ah,00

mov al,[escposl]

mov dx,1

int 17h

mov cx,5h

loop met1

met2: ret

eof proc

mov al,06h

mov bx,[handle]

int 21h

ret

eof endp

CLEAR PROC

MOV AX,0600h

MOV CX,0000

MOV DX,184Fh

INT 10h

mov ah,02

mov bh,0

mov dh,1

mov dl,1

int 10h

RET

end