• Games
  • TMNT
  • Игры
  • Игры
Главная
Всё для геймера: Обзоры игр, Игровые новости, Читы, Советы и пр.
Всё о компьютерных и консольных играх.
Приветствую Вас Гость
Меню геймера
Разделы каталога
Консоли стационарные [25]
Информация про консоли и приставки, комплектующие: картриджи, геймпады и пр.
Портативные консоли [7]
Переносные, ручные игровые консоли, т.н. handheld’ы, а также их комплектующие
Мобильные системы [29]
Мобильные телефоны, смартфоны, КПК, наладонники, планшеты и подобные устройства
PC и железо [31]
Персональный компьютер, микросхемы, джойстики, видеокарты и прочие комплектующие
Ретрокомпьютеры [5]
Бытовые компьютеры прошлого, архитектура, комплектующие и пр.
Игровые автоматы [62]
Статьи про аркадные системы, игровые автоматы, как электрические, так и механические
Опрос геймеров
Сколько часов в сутки вы играете в игры?
Всего ответов: 17133
Главная » Статьи » Игровые системы » Консоли стационарные

Игровая приставка Sony PlayStation (Часть 2)
Сопроцессор графических вычислений
Перейдем к рассмотрению второго сопроцессора, называемого сопроцессором графических вычислений (Graphics Transformation Engine, GTE).
Он применяется при любых расчетах трехмерной графики, таких как перспективная проекция, вращение и масштабирование объектов, вычисление освещенности и др. Для действий над векторами и матрицами предназначен специальный набор операций, которые сопроцессор выполняет гораздо быстрее центрального процессора приставки. Сопроцессор подключен к центральному процессору системы как СОР2 и не занимает адресов в пространстве CPU. Для работы с ним в системе команд центрального процессора предусмотрены специальные команды.

Знакомство с трехмерной графикой
Прежде чем говорить о принципах функционирования данного сопроцессора, системе команд и назначении внутренних регистров, напомним основные соотношения, используемые в трехмерной графике. Конечно, здесь мы представим лишь базовые понятия, дополнительную информацию можно найти в соответствующей литературе.
Чтобы определить местоположение точки в трехмерном пространстве, обычно используют декартову систему координат, изображенную на рис. 4.3. В этой системе координат любая точка в пространстве может быть определена набором из трех значений, отражающих ее позицию вдоль каждой из осей. Обычно они указываются в угловых скобках, например <1,2,3>.


Рис. 4.3. Декартова система координат в трехмерном пространстве

Точка - это базовый примитив трехмерной графики, но строить изображение из точек слишком утомительно. Поэтому нам потребуются вершины и грани.
Вершины (vertices) представляют собой точки, которые используются для задания положения таких объектов, как грани и сети, в трехмерном пространстве. Вершины, подобно точкам, указывают местонахождение, однако сами невидимы.
Грань (face) - это плоский многоугольник, задаваемый своими вершинами. Каждая вершина устанавливает угол грани. Все вершины грани должны находиться в одной и той же плоскости, формируя плоскую грань. Грань, вершины которой принадлежат разным плоскостям, является неправильной, и нарисовать ее нереально.
Простейшая грань определяется тремя вершинами. Получившаяся треугольная грань удобна для работы: во-первых, задать три вершины так, чтобы они не принадлежали одной и той же плоскости, невозможно, следовательно, грань всегда будет правильной; во-вторых, графический процессор использует именно треугольные грани, и, если вы

укажете более сложные грани, для вывода на экран их все равно придется разделять на треугольники.
Сеть (mesh) - это набор соединенных гранен, как правило, описывающий один объект в сцене. Сеть может иметь одну или много граней.
Попробуем смоделировать трехмерные объекты, создавая грани и объединяя их в сеть. Для этого нужно познакомиться с базовыми преобразованиями трехмерных объектов. Преобразования рассматриваются применительно к отдельной точке. Если вы захотите выполнить такие операции для грани или сети, потребуется преобразовать каждую из вершин объекта.
Вращение выполняют, умножая определяющий точку вектор на матрицу вращения. Матрица вращения - это матрица размером 3x3, которая состоит из трех единичных векторов, ортогональных друг к другу. Сведения о том, каким образом получают матрицы и как выполняется умножение вектора на матрицу, можно почерпнуть из учебника математики. Здесь мы приведем только конечный результат:

Чтобы выполнить вращение вокруг нескольких осей одновременно, следует перемножить соответствующие матрицы, причем результат зависит от порядка множителей. К сожалению, сопроцессор графических вычислений не в состоянии вычислять тригонометрические функции - этим должен заниматься центральный процессор системы.
Перемещение объекта осуществляется путем сложения вектора, задающего вершину, с вектором, определяющим направление и дальность передвижения. Еще раз напоминаем, что в операциях с матрицами и векторами очень важен порядок их выполнения. Изменив последовательность операндов, вы получите совсем другой результат.
Теперь, ознакомившись с основными математическими понятиями, перейдем к рассмотрению их реализации в сопроцессоре игровой приставки SONY PLAYSTATION.

Регистры сопроцессора графических вычислений
Сопроцессор графических вычислений игровой приставки SONY PLAYSTATION имеет 64 внутренних регистра (32 управляющих и 32 регистра данных), которые используются при расчетах. Рассмотрим сначала управляющие регистры, предназначенные для хранения различных констант.

Регистр 0
Имя: R11R12.
Назначение.
Элементы 11 и 12 матрицы вращения. Элемент 12 занимает разряды D32 - D16, а элемент 11 - разряды D15 - D0. Числа хранятся в формате (1, 3, 12): один знаковый разряд, три разряда для целой части числа и 12 разрядов для дробной.

Регистр 1
Имя: R13R21.
Назначение.
Элементы 13 и 21 матрицы вращения. Элемент 21 занимает разряды D32 - D16, а элемент 13 - разряды D15 - DO. Числа хранятся в формате (1, 3, 12).

Регистр 2
Имя: R22R23.
Назначение.
Элементы 22 и 23 матрицы вращения. Элемент 23 занимает разряды D32 - D16, а элемент 22 - разряды D15 - D0. Числа хранятся в формате (1, 3, 12).

Регистр 3
Имя: R31R32.
Назначение.
Элементы 31 и 32 матрицы вращения. Элемент 32 занимает разряды D32 - D16, а элемент 31 - разряды D15 - D0. Числа хранятся в формате (1, 3, 12).

Регистр 4
Имя: R33.
Назначение.
Элемент 33 матрицы вращения. Занимает разряды D15 - D0. Старшие 16 разрядов регистра не используются. Число хранится в формате (1, 3, 12).

Регистр 5
Имя: TRX.
Назначение.
Элемент X вектора перемещения. Число хранится в формате (1, 31, 0).

Регистр 6
Имя: TRY.
Назначение.
Элемент Y вектора перемещения. Число хранится в формате (1, 31, 0).

Регистр 7
Имя: TRZ.
Назначение.
Элемент Z вектора перемещения. Число хранится в формате (1, 31, 0).

Регистр 8
Имя: L11L12.
Назначение.
Элементы 11 и 12 матрицы освещения. Элемент 12 занимает разряды D32 - D16, а элемент 11 - разряды D15 - DO. Числа хранятся в формате (1, 3, 12): один знаковый разряд, три разряда для целой части числа и 12 разрядов для дробной.

Регистр 9
Имя: L13L21.
Назначение.
Элементы 13 и 21 матрицы освещения. Элемент 21 занимает разряды D32 - D16, а элемент 13 - разряды D15 - D0. Числа хранятся в формате (1,3, 12).

Регистр 10
Имя: L22L23.
Назначение.
Элементы 22 и 23 матрицы освещения. Элемент 23 занимает разряды D32 - D16, а элемент 22 - разряды D15 - D0. Числа хранятся в формате (1,3, 12).

Регистр 11
Имя: L31L32. Назначение.
Элементы 31 и 32 матрицы освещения. Элемент 32 занимает разряды D32 - D16, а элемент 31 - разряды D15 - DO. Числа хранятся в формате (1, 3, 12).

Регистр 12
Имя: L33.
Назначение.
Элемент 33 матрицы освещения. Занимает разряды D15 - D0. Старшие 16 разрядов регистра не используются. Число хранится в формате (1,3,12).

Регистр 13
Имя: RBK.
Назначение.
Красная составляющая цвета фона. Число хранится в формате (1, 19, 12).

Регистр 14
Имя: GBK.
Назначение.
Зеленая составляющая цвета фона. Число хранится в формате (1, 19, 12).

Регистр 15
Имя: ВВК.
Назначение.
Синяя составляющая цвета фона. Число хранится в формате (1, 19, 12).

Регистр 16
Имя: LR1LR2.
Назначение.
Элементы 1 и 2 красной составляющей цветовой матрицы освещения. Элемент 2 занимает разряды D32 - D16, а элемент 1 - разряды D15 - D0. Числа хранятся в формате (1, 3, 12): один знаковый разряд, три разряда для целой части числа и 12 разрядов для дробной.

Регистр 17
Имя: LR3LG1.
Назначение.
Элемент 3 красной составляющей и элемент 1 зеленой составляющей цветовой матрицы освещения. Зеленая составляющая занимает разряды D32 -D16, а красная - разряды D15 - D0. Числа хранятся в формате (1, 3, 12).

Регистр 18
Имя: LG2LG3.
Назначение.
Элементы 2 и 3 зеленой составляющей цветовой матрицы освещения. Элемент 3 занимает разряды D32 - D16, а элемент 2 - разряды D15 - D0. Числа хранятся в формате (1,3, 12).

Регистр 19
Имя: LB1LB2.
Назначение.
Элементы 1 и 2 синей составляющей цветовой матрицы освещения. Элемент 2 занимает разряды D32 - D16, а элемент 1 - разряды D15 - D0. Числа хранятся в формате (1, 3, 12).

Регистр 20
Имя: LB3.
Назначение.
Элемент 3 синей составляющей цветовой матрицы освещения. Занимает разряды D15 - D0. Старшие 16 разрядов регистра не используются. Число хранится в формате (1, 3, 12).

Регистр 21
Имя: RFC. Назначение..
Красная составляющая общей освещенности. Число хранится в формате (1, 27, 4).

Регистр 22
Имя: GFC. Назначение.
Зеленая составляющая общей освещенности. Число хранится в формате (1, 27, 4).

Регистр 23
Имя: BFC.
Назначение
Синяя составляющая общей освещенности. Число хранится в формате (1, 27, 4).

Регистр 24
Имя: OFX Назначение.
Смещение экрана по оси X.

Регистр 25
Имя: ОFY.
Назначение.
Смещение экрана по оси Y.

Регистр 26
Имя: Н.
Назначение.
Расстояние до плоскости проекции. Число хранится в разрядах D16 - D0 в формате (0, 16, 0).

Регистр 27
Имя: DQA.
Назначение.
Параметр, задающий глубину сцены. Число хранится в разрядах D16 - DO в формате (0, 7, 8).

Регистр 28
Имя: DQB.
Назначение.
Параметр, задающий глубину сцены. Число хранится в разрядах D16 - DO в формате (0, 7, 8).

Регистр 29
Имя: ZSF3.
Назначение.
Множитель Z3, обычно равен 1/3. Число хранится в разрядах D16 - D0 в формате (1, 3, 12).

Регистр 30
Имя: ZSF4,
Назначение.
Множитель Z4, обычно равен 1/4. Число хранится в разрядах D16 - D0 в формате (1, 3, 12).

Регистр 31
Имя: FLAG.
Назначение.
Состояние отдельных разрядов регистра сообщает о результате выполнения последней операции сопроцессора и о возникновении ошибок.

Теперь рассмотрим назначение 32 регистров данных. Эти регистры служат для хранения данных, предназначенных для обработки, и результатов.

Регистр 0
Имя: VXY0.
Назначение.
В регистре хранятся значения координат х и у для первого вектора. Координата у записывается в разряды D31 - D16, а координата х - в разряды D15 - D0. Числа могут храниться в формате (1, 3, 12) или (1, 15, 0).

Регистр 1
Имя: VZ0.
Назначение.
В регистре хранится значение координаты z для первого вектора. Координата записывается в разряды D15 - D0 в формате (1, 3, 12) или (1, 15, 0). Старшие 16 разрядов регистра не используются.

Регистр 2
Имя: VXY1.
Назначение.
В регистре хранятся значения координат х и у для второго вектора. Координата у записывается в разряды D31 - D16, а координата х - в разряды D15 - D0. Числа могут храниться в формате (1, 3, 12) или (1, 15, 0).

Регистр 3
Имя: VZ1.
Назначение.
В регистре хранится значение координаты z для второго вектора. Координата записывается в разряды D15 - D0 в формате (1, 3, 12) или (1, 15, 0). Старшие 16 разрядов регистра не используются.

Регистр 4
Имя: VXY2.
Назначение.
В регистре хранятся значения координат х и у для третьего вектора. Координата у записывается в разряды D31 - D16, а координата х - в разряды D15 - D0. Числа могут храниться в формате (1, 3, 12) или в формате (1, 15, 0).

Регистр 5
Имя: VZ2.
Назначение.
В регистре хранится значение координаты z для третьего вектора. Координата записывается в разряды D15 - D0 в формате (1, 3, 12) или (1, 15, 0). Старшие 16 разрядов регистра не используются.

Регистр 6
Имя: RGB.
Назначение.
В регистре хранится код цвета. Разряды D31 - D24 не используются, в разрядах D23 - D16 содержится код для синей составляющей, в разрядах D15 - D8 -для зеленой и в разрядах D7 - DO - для красной.

Регистр 7
Имя: OTZ.
Назначение.
В младших 16 разрядах регистра хранится среднее значение z в формате (0, 15, 0). Регистр доступен только для чтения.

Регистр 8
Имя: IR0.
Назначение.
Регистр для промежуточного результата. В старших 16 разрядах содержится копия знакового бита, а в младших - число в формате (1, 3, 12).

Регистр 9
Имя: IR1.
Назначение.
Регистр для промежуточного результата. В старших 16 разрядах содержится копия знакового бита, а в младших - число в формате (1, 3, 12).

Регистр 10
Имя: IR2.
Назначение.
Pei истр для промежуточного результата. В старших 16 разрядах содержится копия знакового бита, а в младших — число в формате (1, 3, 12).

Регистр 11
Имя: IR3.
Назначение.
Регистр для промежуточного результата. В старших 16 разрядах содержится копия знакового бита, а в младших - число в формате (1, 3, 12).

Регистр 12
Имя: SXY0.
Назначение.
Элемент очереди для хранения экранных координат х и у. Координата у хранится в разрядах D31 -D16 в формате (1, 15, 0), а координата х — в разрядах D15 - D0 в аналогичном формате. Очередь работает по принципу FIFO, то есть сначала считывается первый записанный элемент.

Регистр 13
Имя: SXY1.
Назначение.
Элемент очереди для хранения экранных координат х и у.

Регистр 14
Имя: SXY2.
Назначение.
Элемент очереди для хранения экранных координат х и у.

Регистр 15
Имя: SXYP. Назначение.
Элемент очереди для хранения экранных координат х и у.

Регистр 16
Имя: SZ0.
Назначение.
Элемент очереди для хранения экранной координаты z. Она хранится в разрядах D15 - D0 в формате (0,16, 0) и всегда является положительной. Старшие разряды регистра не используются.

Регистр 17
Имя: SZ1.
Назначение.
Элемент очереди для хранения экранной координаты z.

Регистр 18
Имя: SZ2.
Назначение.
Элемент очереди для хранения экранной координаты z.

Регистр 19
Имя: SZP.
Назначение.
Элемент очереди для хранения экранной координаты z.

Регистр 20
Имя: RGB0.
Назначение.
Элемент очереди для хранения цветовых кодов. Формат хранения аналогичен используемому в регистре 6 (RGB).

Регистр 21
Имя: RGB1.
Назначение.
Элемент очереди для хранения цветовых кодов. Формат хранения аналогичен используемому в регистре 6 (RGB).

Регистр 22
Имя: RGB2.
Назначение.
Элемент очереди для хранения цветовых кодов. Формат хранения аналогичен используемому в регистре 6 (RGB).

Регистр 23
Имя: RES1.
Назначение.
Регистр не используется и недоступен для программ.

Регистр 24
Имя: МАСО.
Назначение.
Регистр хранения результата. Числа содержатся в формате (1, 31, 0).

Регистр 25
Имя: МАС1.
Назначение.
Регистр хранения результата. Числа содержатся в формате (1, 31, 0).

Регистр 26
Имя: МАС2.
Назначение.
Регистр хранения результата. Числа содержатся в формате (1, 31, 0).

Регистр 27
Имя: МАСЗ.
Назначение.
Регистр хранения результата. Числа содержатся в формате (1, 31, 0).

Регистр 28
Имя: IRGB.
Назначение.
Регистр ввода 15-разрядного кода цвета. В регистр записывается 15-разрядный код, при этом значение синей составляющей определяется разрядами D14 - D10, значение зеленой - разрядами D9 - D5, а значение красной - разрядами D4 -D0. Сразу после сохранения значения каждой составляющей цвета автоматически преобразуются в формат (1, 11, 4) и помещаются во внутренние регистры сопроцессора (IR1, IR2 и IR3). Регистр доступен только для записи.

Регистр 29
Имя: ORGB.
Назначение.
Регистр чтения 15-разрядного кода цвета. При чтении из этого регистра содержимое внутренних регистров IR1, IR2 и IR3 автоматически преобразуется в 5-разрядные коды для цветовых составляющих, из которых получается значение в формате, аналогичном используемому в регистре 28 (IRGB). Регистр доступен только для чтения.

Регистр 30
Имя: LZCS.
Назначение.
Регистр данных для счетчика ведущих нулей. Сюда записывается число в формате (1, 31, 0), а результат возвращается в регистре 31 (LZCR). Регистр доступен только для записи.

Регистр 31
Имя: LZCR.
Назначение.
Счетчик ведущих нулей. При чтении из этого регистра возвращается 6-разрядное число, которое указывает количество ведущих нулей в числе, записанном в регистр 30 (LZCS). Если число в регистре 30 отрицательно, то передается число ведущих единиц. Регистр доступен только для чтения.
После приведенного описания регистров сопроцессора графических вычислений игровой приставки SONY PLAYSTATION следует дать несколько пояснений. Во-первых, чтобы лучше разобраться с форматами хранения данных, нужно обратиться к рис. 4.4. Во-вторых, необходимо учитывать, что некоторые регистры образуют очереди. Работа с этими очередями ведется таким образом: когда вычисляется очередное значение, оно помещается в последний регистр очереди, а все элементы очереди


РИС. 4.4. Форматы данных для сопроцессора графических вычислений

сдвигаются на одну позицию к началу. Например, новое значение координат х и у будет помещено в регистр SXYP. Значение, которое здесь хранилось, копируется в регистр SXY2, значение из регистра SXY2 - в регистр SXY1 и значение из регистра SXY1 - в регистр SXY0.

Работа с сопроцессором графических вычислений
Ниже рассматриваются принципы взаимодействия ядра центрального процессора игровой приставки SONY PLAYSTATION и сопроцессора графических вычислений. С этой целью в систему команд центрального процессора введены шесть команд для обмена данными и одна команда для передачи сопроцессору кода выполняемой операции.
Команды LWC2 и SWC2 позволяют загружать данные из памяти в регистры данных сопроцессора и записывать содержимое этих регистров в память. Команды МТС 2 и MFC 2 предназначены для передачи чисел из регистров центрального процессора в регистры данных сопроцессора и обратно.
Обмен информацией между управляющими регистрами сопроцессора графических вычислений и регистрами центрального процессора осуществляется с помощью команд СТС2 и CFC2.
Команда СОР2 служит для пересылки сопроцессору команд, которые необходимо выполнить. После нее указывается 25-разрядный код команды сопроцессора графических вычислений.
Перед тем как центральный процессор обратится к сопроцессору графических вычислений, разряд 30 в регистре SR сопроцессора управления системой следует установить в 1, в противном случае обращение к сопроцессору вызовет возникновение исключения. Команды сопроцессора графических вычислений нельзя использовать в процедурах обслуживания исключений и запросов на прерывание.
Если очередная команда обращения к сопроцессору будет выполнена центральным процессором до того, как сопроцессор закончит обработку предыдущей команды, центральный процессор остановится, ожидая окончания работы сопроцессора.

Система команд сопроцессора графических вычислений
Ниже мы расскажем о системе команд сопроцессора. Знакомство начнем с формата команды, изображенного на рис. 4.5.
Любая команда представляет собой 25-разрядное двоичное число. В этом числе выделяется несколько полей, состояние разрядов в которых может влиять на местоположение операндов команды и алгоритм вычисления. Опишем поля более детально: sf - 0 - вычисления; 1 - вычисления со значениями из регистров IR; mх - 00 - умножение на матрицу вращения; 01 -умножение на матрицу освещенности; 10 -умножение на матрицу цвета; 11 - не используется;
v - 00 - операнд в векторе 10; 01 - операнд в векторе I1; 10 - операнд в векторе 12; 11 - операнд в регистре IR; cv — 00 - прибавление вектора перемещения TR; 01 - прибавление вектора фонового цвета ВК; 10 - прибавление вектора удаленного освещения FAR (работает неправильно); 11 -прибавление вектора отсутствует; Im - 0 - нет ограничений на результат; 1 - результат ограничен нулем. Более подробные сведения о системе команд сопроцессора графических вычислений игровой приставки SONY PLAYSTATION можно найти в Internet.

4.2.3. Адресное пространство

В этом разделе описывается распределение памяти, установленной в игровой приставке SONY PLAYSTATION. Блоки, рассмотрению которых посвящены следующие разделы, например видео память, здесь представлены очень кратко. ПЗУ, имеющееся в игровой приставке, и записанная в нем операционная система анализируются более развернуто, поскольку эти сведения необходимы для понимания функционирования основных узлов устройства.
Итак, в приставке SONY PLAYSTATION память применяется центральным процессором, видеопроцессором, звуковым процессором и процессором управления приводом CD-ROM.
К центральному процессору подключено ПЗУ, в котором записана операционная система, и 2 Мб I оперативной памяти, которые используются про-1 граммами. ПЗУ и ОЗУ вместе составляют основную память игровой приставки. Оперативная память располагается в самом начале адресного пространства (адреса 00000000h - 00200000h), однако часто в программах можно увидеть адрес, начинающийся с 80h. Дело в том, что центральный процессор преобразует логические 32-разрядные адреса


Рис. 4.5. Формат команды сопроцессора графических вычислений

в физические адреса установленной памяти. При этом адрес, начинающийся с 80h, разрешает работу кэш-памяти команд. Следовательно, память располагается и по адресам 80000000h- 80200000h. Первые 64 Кб задействуются ядром операционной системы, так что первый доступный для размещения программы адрес - 80010000h.
Регистры различных контроллеров игровой приставки включены в общее адресное пространство, где для них имеется отдельная область. Эти регистры не являются частью ОЗУ или ПЗУ, но при программировании работа с ними ничем не отличается от работы с памятью.
Видеопроцессор для хранения информации о формируемом изображении использует видео-ОЗУ объемом 1 Мб. Оно не является частью общего адресного пространства и доступно только через регистры видеопроцессора или посредством контроллера прямого доступа к памяти.
Звуковой процессор также применяет собственную память объемом 256 Кб, одна часть которой зарезервирована для звуковых данных, поступающих с CD-ROM, а другая хранит данные, необходимые внутренним схемам звукового процессора при формировании аудиосигналов.
Еще одно ОЗУ объемом 256 Кб подключено к контроллеру управления приводом CD-ROM. Эта память играет роль буфера, ускоряющего обращение к CD-ROM из программ.
Рассмотрим более подробно операционную систему, которая записана в ПЗУ, игровой приставки.

Операционная система SONY PLAYSTATION
Операционная система приставки SONY PLAYSTATION представляет собой 32-разрядную многозадачную операционную систему, предназначенную для управления аппаратурой игровой приставки, работы с файловой системой на компакт-диске и осуществления межпоточного взаимодействия в программах.
Вызовы функций операционной системы производятся через точку входа с адресом В0h. Номер функции передается через регистр с 1 центрального процессора. Таким образом, для обращения к функции операционной системы необходимо записать ее номер в регистр с 1 и выполнить команду
jal $000000В0.

Функция openevent
Номер: 08h. Параметры:
а0 - класс события;
a1 - спецификатор события;
а2 — режим события;
аЗ - адрес функции, которая будет выполняться при возникновении события.
Результат:
v0 - дескриптор события или -1, если произошла ошибка. Описание.
Данная функция создает структуру описателя события и добавляет ее в таблицу обрабатываемых событий. Параметры, помещаемые в регистры А0 - А2, рассматриваются ниже. Возвращаемый дескриптор события в дальнейшем используется при обращении к другим функциям.
Класс события определяет, какое устройство вызывает возникновение данного события. Старший байт задает группу событий:
FFh — события межпоточного взаимодействия;
F4h - события системы ввода/вывода;
F3h - пользовательские события;
F2h - счетчики;
F0h - события аппаратуры.
Младшие три байта позволяют более детально охарактеризовать событие в зависимости от его группы. Для событий, возникающих по сигналам от аппаратуры, возможны следующие значения:
F000000lh- прерывание по кадровому синхроимпульсу (VBLANK);
F0000002h - сигнал от видеопроцессора (CPU);
F0000003h - сигнал от дешифратора CD-ROM;
F0000004h - контроллер прямого доступа к памяти;
F0000005h - RTC0;
F0000006h - RTC1;
F0000007h - RTC2;
F0000008h- игровой пульт;
F0000009h- звуковой процессор;
F000000Ah - параллельный порт;
F000000Bh - последовательный порт;
F00000l0h- исключение;
F00000llh- карта памяти (memory card);
F0000012h- карта памяти (memory card);
F0000013h - карта памяти (memory card).
Для событий таймера в старшем байте, как уже упоминалось, содержится число F2h, а в младшем байте — номер канала таймера от 0 до 3.
Система ввода/вывода использует события, вызываемые картой памяти memory card с классом F4000001hH математической библиотекой с классом F4000002h.
Спецификатор служит для более точного определения действия, вызвавшего возникновение события. Наиболее часто применяются следующие спецификаторы:
0001h - счетчик равен нулю;
0002h - работа прервана;
0004h - конец ввода/вывода;
0008h - файл закрыт;
0010h - подтверждение приема команды;
0020h - выполнение команды завершено;
0040h - данные готовы;
0080h - конец данных;
0l00h - время истекло;
0200h - неизвестная команда;
0400h - конец буфера чтения;
0800h - конец буфера записи;
1000h - прерывание;
2000h - новое устройство; 4000h - команда syscall;
030lh - ошибка в библиотеке libmat'h;
0302h - неправильный диапазон в библиотеке
libmath
И наконец, режим события определяет тип вызываемого обработчика. Если этот параметр равен 1000h, обслуживается запрос на прерывание или исключение; если же параметр равен 2000h, сразу вызывается обработчик события.

Функция closeevent
Номер: 09h.
Параметры:
а0 - дескриптор события.
Результат:
v0 - 1 при удаче, 0 при ошибке. Описание.
Функция удаляет структуру описателя события из таблицы обрабатываемых событий.

Функция enableevent
Номер: 0Ch.
Параметры:
а0 - дескриптор события.
Результат:
v0 - 1 при удаче, 0 при ошибке. Описание.
Функция разрешает обработку события из таблицы, определяемого заданным дескриптором. Чтобы в программе могло обслуживаться какое-либо событие, необходимо с помощью функции open-event сначала создать запись о нем, а затем посредством функции enableevent разрешить его обработку.

Функция disableevent
Номер: 0Dh.
Параметры:
а0 - дескриптор события.
Результат:
v0 - 1 при удаче, 0 при ошибке. Описание.
Функция запрещает обслуживание события с указанным дескриптором. Из таблицы событий запись не удаляется, так что в дальнейшем можно снова разрешить обработку этого события, вызвав функцию enableevent, или удалить структуру описания события функцией closeevent.

Функция open
Номер: 32h.
Параметры:
а0 - указатель на имя файла;
a1 - режим работы с файлом. Результат:
v0 - дескриптор файла или -1 при ошибке. Описание.
Функция открывает файл (на компакт-диске или на устройстве memory card) для дальнейшей работы с ним. Игровая приставка SONY PLAYSTATION может использовать одновременно не более 16 файлов. Режим задают следующие разряды:
D0 - 1 для чтения.
D1 - 1 для записи.
D9 - 1 для создания нового файла.
D16 - D31 - число блоков в карте памяти (memory card), резервируемое для нового файла.
Возвращаемый функцией дескриптор файла при¬меняется другими функциями.

Функция lseek
Номер: 33h.
Параметры:
а0 - дескриптор файла;
a1 - смещение;
а2 - база. Описание.
Функция перемещает указатель, определяющий текущую позицию доступа к файлу, на число байтов, заданное в регистре a1. Если в регистре а2 записан 0, то смещение вычисляется относительно начала файла, если 1 - относительно имеющейся позиции указателя. Никаких проверок на выход за границы файла не производится.

Функция read
Номер: 34h.
Параметры:
а0 - дескриптор файла;
a1 - указатель на буфер для считанных данных;
a1 - число байтов, которые будут прочитаны. Результат.
v0 - число реально прочитанных байтов или -1 при ошибке.
Описание.
Функция читает данные из открытого файла и записывает их в память по указанному адресу.

Функция write
Номер: 35h.
Параметры:
а0 - дескриптор файла;
a1 - указатель на записываемые данные;
а2 - число записываемых байтов.
Результат:
v0 - число реально записанных байтов или -1 при ошибке. Описание.
Функция записывает данные в карту memory card. При попытке сохранить информацию на CD-ROM в качестве результата будет возвращен 0.

Функция close
Номер: 36h.
Параметры:
а0 - дескриптор файла. Результат:
v0 - дескриптор файла или -1 при ошибке. Описание.
Функция закрывает определяемый дескриптором файл.
Разумеется, функций в ПЗУ игровой приставки гораздо больше, чем описано здесь. В разделе приведен только минимальный набор, который позволит разобраться с излагаемым далее материалом, а также понимать тексты программ.

Категория: Консоли стационарные | Добавил: G-GURU (06.11.2010)
Просмотров: 4723 | Рейтинг: 5.0/2 |
Вы можете отправить сообщение на e-mail друга:

Интересное геймерам:

Смотрите другие материалы по темам: PlayStation, функция, PSX, sony playstation, Адресное пространство, Игровая приставка.

Также вам предлагаются схожие с «Игровая приставка Sony PlayStation (Часть 2)» материалы:

Если понравился материал «Игровая приставка Sony PlayStation (Часть 2)» и вы можете обсудить его ниже.

Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск информации
Игровые братья
Создание игр, Конструкторы игр, Игровые движки Перевод консольных игр Разработка игр в СНГ Пранк - телефонные шутки
10 новых описаний
Satan Claus [SMD]
Покупка купонов, игровых валют для Nintendo Switch, Twitch и пр.
Краткий обзор популярной онлайн игры Palworld
Увеличьте доходы от рекламы с помощью оптимизации контента
Для чего вам нужен виртуальный номер телефона
Обзор новой экшен РПГ «Zenless Zone Zero» от miHoYo
Игра «Alien Fish Finger» v1.31 на Amiga
Обзор смартфона Xiaomi 14
Игровая индустрия ориентируется уже на всех
Где покупать и/или продавать свои скины CS2, Dota 2, RUST?
Повысьте качество обслуживания пользователей и прибыль
Решающее значение для сайта - Domain Authority (DA)
Компания MAN-MADE показала компьютер, вдохновленный игрой «Метро 2033»
Почему ПО для колл-центров востребовано компаниями
Сколько стоит предметная съёмка товаров для интернет-магазина
Все права сохранены за сайтом GFAQ.ru © 2024. Games Frequently Asked Questions
Полные прохождения, Секреты, Коды, Пароли, Советы, Уловки, Читы, Описания для Компьютерных и Консольных Игр. Хостинг от uCoz
Обращаем особое внимание на то, что при цитировании и размещении данных текстовых материалов, обязательно прикрепляйте ссылку на официальный сайт "GFAQ.ru".