- •Архітектура комп’ютерів методичний посібник для проведення лабораторних робіт
- •Лабораторна робота № 1 перетворення чисел в машинних кодах
- •Теоретичні відомості
- •1. Формати даних
- •1.1 Природна форма числа
- •1.2 Нормальна форма числа
- •2. Машинні коди чисел
- •Методичні вказівки
- •Література
- •2.1 Дії над числами в природній формі
- •2.2 Дії над числами в нормальній формі
- •Завдання
- •Лабораторна робота № 2 цеом нейманівської архітектури
- •Теоретичні відомості
- •1. Структура еом
- •2. Елементарні машинні операції
- •3. Формати команд та кодування операцій еом
- •Методичні вказівки
- •Література
- •Завдання
- •1. Схема алгоритма розв’язку задачі
- •2. Програма в змістовній формі
- •3. Система операцій еом
- •4. Кодування операцій еом
- •5. Адресна інформація в 16-й системі числення
- •6. Розподіл пам’яті
- •7. Програма в машинних кодах
- •1. Загальні відомості про системи прямого доступу до пам’яті
- •2. Прямий доступ до пам’яті в пеом
- •3. Призначення та формати регістрів кпдп
- •3.1 Регістр станів (stat)
- •3.2 Регістр команд (cr)
- •3.3 Регістр режиму (mod)
- •3.4 Регістр маски (mask)
- •3.5 Регістр запиту (req)
- •3.6 Регістр поточної адреси
- •3.7 Регістр поточного лічильника слів (ccr)
- •3.8 Базові регістри адрес та лічильника (bar та car)
- •3.9 Тимчасовий регістр (tr)
- •3.10 Канали системи пдп пеом
- •4. Ініціалізація кпдп
- •Методичні вказівки
- •Література
- •Завдання
- •Текст програми
- •Контрольні запитання
- •1. Принципи організації системи переривань
- •2. Стани програмованого контролера переривань.
- •3. Призначення та формати операційних слів пкп
- •3.1 Операційне слово ocw1
- •3.2 Операційне слово ocw2
- •3.3 Операційне слово ocw3
- •Методичні вказівки
- •Література
- •Завдання
- •Текст програми
- •Контрольні запитання
- •Лабораторна робота № 5
- •Генерації звуку та випадкових чисел
- •Теоретичні відомості
- •1. Призначення таймера
- •2. Архітектура та принципи функціонування таймера
- •3. Програмування таймера
- •4. Засоби bios для роботи з таймером
- •5. Генерація звукових сигналів
- •6. Генерація випадкових чисел
- •Методичні вказівки
- •Література
- •Завдання
- •Тексти програм
- •Лабораторна робота № 6 вивчення та дослідження методів програмного керування годинником реального часу
- •Теоретичні відомості
- •1. Призначення годинника реального часу
- •2. Призначення та формати регістрів кмон-пам’яті
- •3. Засоби bios для роботи з годинником реального часу
- •Методичні вказівки
- •Література
- •Завдання
- •Тексти програм
- •Лабораторна робота № 7 дослідження режимів роботи послідовних інтерфейсів пеом
- •Теоретичні відомості
- •1. Загальні відомості про інтерфейс
- •2. Використання порту rs232c
- •3. Функції апаратних засобів інтерфейса rs232c
- •4. Формати портів уапп
- •5. Ініціалізація уапп
- •6. Підтримка асинхронного адаптера в bios
- •7. Підтримка асинхронного адаптера в dos
- •Методичні вказівки
- •Література
- •Завдання
- •Тексти програм
- •1. Призначення та характеристики інтерфейса Centronics
- •2. Опис портів інтерфейса Centronics
- •Тексти програм
- •3. Засоби bios для роботи з принтером
- •Методичні вказівки
- •Література
- •5. Гук м. Аппаратные средства ibm pc. Энциклопедия. – сПб.: “Издательс-тво
- •Завдання
- •Лабораторна робота № 9 дослідження методів програмного керування контролером клавіатури
- •Теоретичні відомості
- •1. Контролер клавіатури pc/at i8042
- •2. Порти контролера клавіатури
- •3. Методи програмного керування клавіатурою
- •4. Коди відповідей клавіатури
- •5. Засоби bios та ms dos для роботи з клавіатурою
- •5.1 Засоби bios
- •5.2 Засоби ms dos
- •Методичні вказівки
- •Література
- •Завдання
- •Тексти програм
- •Лабораторна робота № 10 дослідження методів програмного керування контролером нгмд
- •Теоретичні відомості
- •1. Основні відомості про контролер нгмд
- •2. Програмування контролера нгмд
- •Методичні вказівки
- •Література
- •Завдання
- •2) Записати введений користувачем рядок у сектор s на доріжку t;
- •Контрольні запитання
- •Література
- •1. Гук м. Аппаратные средства ibm pc. – сПб.: “Питер”, 1999. – 816 с.
3. Засоби bios для роботи з принтером
У складі BIOS для роботи з принтером є три функції переривання 17h.
Функція 00h призначена для друку одного символу.
Вхід: AH = 00h
67
DX – номер порту: 01h – LPT1, 02h – LPT2, 03h – LPT3
AL – ASCII – код символу для друку
Вихід: AH – стан принтера (таблиця 3).
Викликавши функцію 00h, програма повинна перевірити біти байта стану та впевнитись в тому, що вивід бата відбувся без помилок. Формат байта стану приведено в таблиці 3 і він відрізняється лише тим, що наявність одиниці в молодшому біті свідчить про надто великий тайм-аут.
Функція 01h призначена для ініціалізації принтера.
Вхід: AH = 01h
DX – номер порту: 01h – LPT1, 02h – LPT2, 03h – LPT3
AL – байт керування режимом (таблиця 2)
Вихід: AH – стан принтера (таблиця 3).
Ця функція здійснює апаратне скидання принтера.
Слово стану принтера можн отримати за допомогою функції 02h:
Вхід: AH = 02h
DX – номер порту: 01h – LPT1, 02h – LPT2, 03h – LPT3
Вихід: AH – стан принтера (таблиця 3).
Цю функцію зручно використовувати перед початком друку для визначення готовності принтера до роботи.
Методичні вказівки
В даній роботі пропонується дослідити і протестувати програму, яка працює з паралельним портом.
Для виконання роботи необхідні грунтовні знання архітектури та принципів функціонування паралельного інтерфейса принтера, а також знання призначення
та способів використання функцій 00h, 01h, 02h переривання 17h BIOS.
Література
5. Гук м. Аппаратные средства ibm pc. Энциклопедия. – сПб.: “Издательс-тво
Питер”, 1999. – 816 с.
6. Гуржій А. М., Коряк С. Ф., Самсонов В. В., Скляров О. Я. Архітектура, принципи функціонування і керування ресурсами IBM PC: Навч. посібник. Харків: ТОВ. “Компанія СМІТ”, 2003. – 512 с.
7. Зубков С. В. Ассемблер для DOS, Windows и Unix. – М.: ДМК, 1999. – 640 с.
8. Фролов А. В., Фролов Г. В. Аппаратное обеспечение персонального ком-
пьютера. – М.: ДИАЛОГ МИФИ, 1997. – 304 с.
Завдання
1. Дослідити програму print, яка формує масив символів, що вводяться з клавіатури, аналізує стан принтера, передає послідовність символів у буфер принтера для їх роздрукування.
2. Нарисувати схему алгоритму програми.
68
3. На вінчестері створити каталог PRINT.
4. За допомогою редактора середовища програмування Borland C++ 3.1
створити символьний файл тексту програми та записати його в каталог PRINT.
5. Виконати налагодження програми та запустити її на виконання кілька разів з рзними кількостями символів, що виводяться.
6. Зробити висновки.
7. Написати аналогічну програму, але тільки з використанням функцій
BIOS.
8. Повторити для нової програми пункти 2 – 6.
9. Розробити програму ідентифікації та виводу на екран усіх діагностичних повідомлень про стан принтера.
10. Виконати пункти 2 – 6 для розробленої програми.
Тексти програм
#include <dos.h>
#include <alloc.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
extern int myasm20 (unsigned char*);
void main (void)
{
unsigned char *str;
unsigned char PrintStatus;
char c;
// виділення пам‟яті для рядка
str = malloc (100);
puts (“Введіть рядок символів: ”);
gets (str);
Rep:
PrintStatus = inp (0x379);
if ((PrintStatus & 0x08) == 0) {
printf (“Помилка принтера\n”);
printf (“Завершити програму (y/n)?”);
c = getch ();
if ((c == „y‟) || (c == „n‟)) exit (0);
goto Rep;
}
myasm20 (str);
// передача на принтер символу переводу рядка
fprintf (stdprn, “\n”);
69
}
// Модуль виводу мовою асемблера
.MODEL SMALL
.CODE
PUBLIC _myasm20
_myasm20 PROC NEAR
PUSH BP
MOV BP, SP
MOV BX, [BP+4]
// в регістр BX передається адреса рядка із стека
POP BP
SUB AX, AX
// в регістр ES заноситься нуль
MOV ES, AX
// в регістр DX заноситься номер порту вихідного регістра
MOV DX, ES:[0408h] NEXTBYTE:
// в регістр AL передається черговий символ (адреса – в BX)
MOV AL, [BX]
// якщо цей символ – нуль, перейти на мітку EXIT CMP AL, 0
JE EXIT
// символ пересилається в порт
OUT DX, AL OUT DX, AL
OUT DX, AL
// в регістрі DX номер порту регістра керування
INC DX
INC DX
// в регістрі AL код для стробуючого сигналу
MOV AL, 0Dh
// видати в порт стробуючий сигнал
OUT DX, AL
// затримка
NOP
NOP NOP
// в регістрі AL код відміни стробуючого сигналу
MOV AL, 0Ch
// відмініти стробуючий сигнал
OUT DX, AL
// в регістрі DX номер порту регістра статусу
DEC DX
WR:
// читання стану регістра статусу
IN AL, DX
// очікуємо стан готовності принтера
-
TEST
AL,
80h
JZ
WR
70
// вибір наступного символу в рядку
INC BX DEC DX
JMP NEXTBYTE
EXIT:
// повернення в модуль main () RET
_myasm20 ENDP
END
КОНТРОЛЬНІ ЗАПИТАННЯ
1. Призначення та характеристики інтерфейса Centronics.
2. Назвіть призначення сигналів, за допомогою яких PC обмнюється з прин-
тером.
3. Назвіть призначення портів інтерфейса Centronics.
4. Які програмні засоби BIOS використовуються для роботи з принтером?
71
