Unix Man (Справочное руководство)


IOS(7) - часть 2


#include <fcntl.h>

#define HEIGHT 0x008A #define ZOOM 0x00EA

typedef unsigned short ushort;

main (argc, argv) int argc; char *argv[]; { int i, j, k, fd, old_value;

if ((fd = open ("/dev/agc", 0, O_RDWR)) < 0) { perror ("\nOpen error /dev/agc :"); exit (0); }

/* Прочитаем значение высоты экрана в строках */ old_value = read_register (HEIGHT);

/* Будем изменять высоту экрана (сначала уменьшаем до нуля, а потом увеличиваем до исходного значения */ for (i=old_value; i>=1; i--) { write_register (HEIGHT, i); /* задержка */ for (j=0; j<1000; j++) k = j/231; }

for (i=1; i<=old_value; i++) { write_register (HEIGHT, i); for (j=0; j<1000; j++) k = j/231; }

/* Будем изменять регистр масштабирования */ for (i=0; i<16; i++) { write_register (ZOOM, (i | (i<<4)) << 8); sleep (1); } for (i=15; i>=0; i--) { write_register (ZOOM, (i | (i<<4)) << 8); sleep (1); }

close (fd); }

/* Запись в регистр контроллера */ void write_register (number, value) int number; /* Номер регистра */ int value; /* Значение регистра */ { ushort *adr= (ushort *) 0xfcc3c000; ushort *dat= (ushort *) 0xfcc3c002; ushort val;

*adr = number; *dat = value; }

/* Чтение регистра контроллера */ int read_register (number) int number; /* Номер регистра */ { ushort *adr= (ushort *) 0xfcc3c000; ushort *dat= (ushort *) 0xfcc3c002;

*adr = number; return ((int) *dat); }

ПРЕДОСТЕРЕЖЕНИЯ


Неосторожное использование ios может нарушить работу системы.

Ios является машинно-зависимым средством и на других компьютерах может не работать.




Начало  Назад  Вперед



Книжный магазин