Рассылка F-Group



Наши Проекты
 http://www.fgroupsoft.net">F-Group Software
 http://www.absolutestartup.com">Absolute Startup manager
 http://www.absolutebackupmonitor.ru">Absolute Backup monitor
 http://www.taxi-office.ru">Такси Диспетчер

Наши Партнёры
 http://www.alltshirts4you.com">All t-shirts 4 you
 

Аттестат WM
passport.webmoney.ru/asp/CertView.asp?wmid=785475039448">
passport.webmoney.ru/asp/CertView.asp?wmid=785475039448">Проверить аттестат


Разработка устройств сопряжения для персонального компьютера типа IBM PC. Под общей редакцией Ю. В. Новикова стр.69

//"*** Драйверы модуля ОЗУ *****

// Глобальная переменная — базовый адрес порта int Cent_Base;

// Прототипы функций нижнего уровня (см. п.3.2.1) // Запись в регистр управления Centronics extern void Cent_Control_drv (unsigned char control); // Чтение из регистра управления Centronics extern unsigned char Cent_Status_drv (void);

// Прототипы функций

// функция инициализации.

int lnit_RAM (void);

// Функция записи данных

void Write_RAM (unsigned addr, unsigned char data);

// Функция чтения данных

unsigned char Read_RAM (unsigned addr);

// Маски битов регистров данных, управления и состояния

// Регистр данных

#define Т1_Т2 0x80

#define RE 0x40

// Регистр управления

#define AL_W 0x00

#define AH_W 0x01

#define RAM_W 0x02

#define SLCTIN 0x08

// Регистр состояния

#define BUSY 0x10

#define STATUS_DATA OxOF

// Функция инициализации.

// Определяет адрес порта, к которому подключен модуль // (по сигналу BUSY).

// Возвращает: 1 — модуль подключен, 0 — не подключен

int lnit_RAM (void)

{

int *b;

b = (int *) MK_FP (0, 0x408); // Указатель на ячейку 0:408 while ( *b != 0 ) // Если порт установлен

{

Cent_Base = *b; // Считываем

// его базовый адрес

if (Cent_Status_drv() & BUSY != 0)

continue; // Модуль не подключен

// к этому порту

Cent_Control_drv (0); // Строб записи = 0 return 1; // Модуль подключен

}

return 0; // Модуль не подключен

}

// Функция записи данных в ОЗУ.

// Вход: data — байт данных, addr — адрес

void Write_RAM (unsigned addr, unsigned char data)

{

// Младший байт адреса ОЗУ

outportb (Cent_Base, addr); // Установка младшего

// байта адреса Cent_Control_drv (AL_W); // Адрес регистра младшего

// байта адреса Cent_Control_drv (AL_W | SLCTIN); // Строб записи = 1 Cent_Control_drv (0); // Строб записи = 0

// Старший байт адреса ОЗУ

outportb (Cent_Base, (addr»8) | RE );// Установка старшего

// байта адреса // и режима записи

Cent_Control_drv (AH_W); //Адрес регистра

//старшего // байта адреса

Cent_Control_drv (AH_W | SLCTIN); // Строб записи = 1

Cent_Control_drv (0); // Строб записи = 0

// Байт данных

outportb (Cent_Base, data); // Установка байта данных

Cent_Control_drv (RAM_W); // Адрес данных

Cent_Control_drv (RAM_W | SLCTIN); // Строб записи = 1 Cent_Control drv (0); // Строб записи = 0

}

// Функция чтения данных из ОЗУ

// Вход: addr — адрес.

// Возвращает: байт данных

unsigned char Read RAM (unsigned addr) {

unsigned char data;

// Младший байт адреса ОЗУ

outportb (Cent_Base, addr); // Установка младшего

// байта адреса

Cent_Control_drv (AL_W); // Адрес регистра младше

// байта адреса

Cent_Control_drv (AL_W | SLCTIN); // Строб записи = 1

Cent_Control_drv (0); // Строб записи = 0

// Старший байт адреса ОЗУ и чтение младшей тетрады данных

outportb (Cent_Base, (addr»8)); // Установка старшего

// байта адреса и // режима чтения // младшей тетрады данных

Cent_Control_drv (AH_W); // Адрес регистра старшего

// байта адреса

Cent_Control_drv (AH_W | SLCTIN); // Строб записи = 1

Cent_Control_drv (0); // Строб записи = 0


⇐ Предыдущая страница| |Следующая страница ⇒



Статьи
  • Социальные сети для путешественников

    На сайтах социальных сетей для путешественников каждый желающий может ознакомиться с отзывами о турпоездках, посмотреть фотографии, видео, найти единомышленников.

  • Поколения сменяются, желание купить iMac остаётся

    Белый (сейчас уже серебристый) монитор на стильной алюминиевой ножке – вот что подумал Пётр, когда впервые увидел iMac, в корпусе G5.

  • Разработка сайтов и приложений для сайтов

    Интернет занял прочные позиции во всех сферах человеческой деятельности. Если вы занимаетесь предпринимательством, то можно во всемирной паутине вести свои дела. Если вы хотите дать рекламу, то интернет всегда придет вам на помощь.

  • Офисный набор программ для работы с ПК

    Если вы недавно приобрели компьютер и хотите использовать его в полную мощь, тогда вам нужно либо пригласить знакомого программиста, либо попытаться установить необходимые программы на свой компьютер самостоятельно.

  • Классификация электронных ресурсов

    По объёму решаемых задач можно выделить Интернет-порталы, информационные ресурсы (тематические сайты и порталы), Интернет-представительства (сайты-визитки, Интернет-магазины, корпоративные сайты) и т.д.

  • Стиральные машины Zanussi: Особенности и ремонт

  • Компьютерные технологии вытесняют реальные вещи

    Развитие одних сфер неминуемо должно приводить к деградации каких-то других. Люди пользуются одними вещами довольно долго, но если на смену приходит что-то более удобное, то старые вещи забываются и становятся ненужными.

  • Чем нужно наполнять сайт?

    Наполнять сайт необходимо только качественным, уникальным и интересным контентом. Вид контента будет напрямую зависеть от типа ресурса. Если крупному порталу требуется карта сайта, то веб-визитка вполне может обойтись без неё.

  • Все статьи