Server for Information Technologies ������ ��������������
������� �������������� ����������
(095) 932-9212, 932-9213, 939-0783
E-mail: [email protected]
������ �������� ����(!) ������������� ���������� CIT Forum CD-ROM

IOS(7)

��������
ios - �������������� ������� �����/������

���������

  #include <sys/user.h>

��������
������������� ��������������� �������� �����/������ ��������� ����������� ������ ������ � �������� ���������� ������, �������� � ����������� ������������ �����������, ��������� ������������ ��������� ��� ��� � ����-������ �� ��������� ����. ������ � ������ �������� �������������� � ������� �������������� ����������, ��������� � ��������� user. ������� �����/������ ����� �������� ������ ������ � ��������� � ������������ ��� ����� ������������ ������ � ���������� ������.

� ��������� user ��������� ��������� �������������� ����������:

     caddr_t u_iospad; /* �����. ����� ���. �������� */
     caddr_t u_iosvad; /* ����. ����� ���. �������� */
     long    u_iossiz; /* ������ ���. �������� */
�������� ���� ���� ����������� ������ ���� ������ ���� ���������� (�������� NBPC � ����� <sys/param.h>).

������
���������������� ���������� ����������� ������������ AGC-1 �� ���������� ���������. ��� ����� ���� ����� ������ � ������ �����������, ��� � ����������� � ������� ios. ������ ����������� ����������� � ������ 0xfcc00000 � ����� ����� 0x240000 (������ � ������������).

��������� ��������� �������������� ����� ��������� user �������������� � ������� �������� ������������ ����� /dev/agc. ��� ���� ����������� ������� agcopen �������� AGC (�� ����� �������� � ����� /usr/src/uts/io/agc.c). ������� ������������� ����

     u.u_iosvad = (caddr_t) 0xfcc00000;
     u.u_iospad = (caddr_t) 0xfcc00000;
     u.u_iossiz = 0x240000;

��� ������� � ������ ����������� �������� ���������� AGC-1 ������������ ��� ��������, ���������� �� ������� ����: ������� ������ - ��� �������� ������ ����������� ��������, ������� ������ - ��� �������� ������, ������� ������ ���� �������� �� ���������� ������� (��� ��������� �� ����). �������� ����� ��������� ������: ������� ������ - 0xfcc3c000, ������� ������ - 0xfcc3c002.

�� ����� �������� ��� ���������� �������� - ������� ������ ������ � ������� ���������������. ��������������, ��� �� ����������� ������ ��� ���� ����������� (��������� �������������� �����-���� ����). �����, ����� ���������� ���������� ���������, �� ������ �������� �����������.

#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 �������� �������-��������� ��������� � �� ������ ����������� ����� �� ��������.
Comments: [email protected]
Designed by Andrey Novikov
Copyright © CIT