Инструменты пользователя

Инструменты сайта


bios

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
bios [2025/12/18 21:31] – создано geckobios [2026/11/03 15:43] (текущий) – gecko
Строка 1: Строка 1:
 ====== BIOS ====== ====== BIOS ======
-PlayStation имеет прошивку, встроенную в плату - так называемый Kernel или BIOS (или просто OS в официальной документации). Код BIOS имеет объем в 512 KiB и находится по адресу 0xbfc00000 - так называемый вектор сброса, фиксированный адрес, куда [[mips_r3000|CPU]] переходит для получения первой инструкции после включения.+PlayStation имеет прошивку, встроенную в плату - так называемый Kernel или BIOS (или просто OS в официальной документации). Код BIOS имеет объем в 512 KiB и находится по адресу 0xbfc00000 - так называемый вектор сброса, фиксированный адрес, куда [[CPU]] переходит для получения первой инструкции после включения.
  
 BIOS стартует при включении питания. Под его данные зарезервированы нижние 64 KiB оперативной памяти, там же расположены таблицы и служебные структуры. BIOS стартует при включении питания. Под его данные зарезервированы нижние 64 KiB оперативной памяти, там же расположены таблицы и служебные структуры.
  
-Примечание: в этой статье все адреса в памяти указаны в пространстве пользователя (KUSEG).+Примечание: в этой статье все адреса в памяти указаны в сегменте KUSEG.
  
 ===== Порядок загрузки ===== ===== Порядок загрузки =====
 Чтобы загрузить игру, BIOS проверяет CD-ROM и, если обнаруживает диск, первым делом ищет в корне диска конфигурационный файл SYSTEM.CNF со строками вида <KEY> = <VALUE>. Строки разделяются парами CR-LF (0x0D, 0x0A). Поддерживаются следующие ключи: Чтобы загрузить игру, BIOS проверяет CD-ROM и, если обнаруживает диск, первым делом ищет в корне диска конфигурационный файл SYSTEM.CNF со строками вида <KEY> = <VALUE>. Строки разделяются парами CR-LF (0x0D, 0x0A). Поддерживаются следующие ключи:
-  * BOOT - [[psx_exe|загрузочный образ]]. Значение должно быть в формате Device:\Product;Version Argument. Значение по умолчанию: cdrom:\PSX.EXE;1. Version - это ISO9660 уровень, для CD это всегда 1. Значение Argument (128 байт) опционально; оно копируется в адрес 0x00000180, откуда можно его прочитать, но чаще всего это не используется;+  * BOOT - [[psx_exe|загрузочный образ]]. Значение должно быть в формате Device:\Product;Version Argument. Значение по умолчанию: cdrom:\PSX.EXE;1. Version - это ISO9660 уровень, для CD это всегда 1. Значение Argument (128 байт) опционально; оно копируется в адрес 0x00000180, откуда программа может его прочитать, но чаще всего это не используется;
   * STACK - адрес начала стека в формате 0xXXXXXXXX. Это значение приоритетом выше, чем то, что задано в заголовке загрузочного образа (см. далее). Значение по умолчанию: 0x801FFF00;   * STACK - адрес начала стека в формате 0xXXXXXXXX. Это значение приоритетом выше, чем то, что задано в заголовке загрузочного образа (см. далее). Значение по умолчанию: 0x801FFF00;
   * TCB - количество контрольных блоков задач ([[tcb|TCB]]). Число в шестнадцатеричном формате. Значение по умолчанию: 4. Минимум: 1;   * TCB - количество контрольных блоков задач ([[tcb|TCB]]). Число в шестнадцатеричном формате. Значение по умолчанию: 4. Минимум: 1;
Строка 22: Строка 22:
  
 ===== Системные вызовы ===== ===== Системные вызовы =====
-BIOS содержит множество функций, доступных для вызова программами.+BIOS содержит множество функций, доступных для вызова программами. Ключевой вопрос, с которым сталкивается любой разработчик - использовать эти функции или нет? Аргументов против BIOS достаточно: не все ее функции эффективны, многие забагованы и в эмуляторах реализованы с широчайшим разбросом совместимости, вплоть до полного отсутствия некоторых. С другой стороны, тащить все в бинарник, раздувая код, тоже нехорошо. Например, вряд ли в реальном проекте нужен свой printf на замену системному.
  
 Аргументы должны быть в [$a0 ... $a3] (и в [$sp + 0x10, $sp + 0x14...] если их больше четырех). Аргументы должны быть в [$a0 ... $a3] (и в [$sp + 0x10, $sp + 0x14...] если их больше четырех).
Строка 32: Строка 32:
 Возвратное значение функции, если оно есть, сохраняется в регистре $2. Возвратное значение функции, если оно есть, сохраняется в регистре $2.
  
-A-Функции (вызов по адресу 0x00a0 с номером функции в регистре $t1):+Существуют три основных вида функций BIOS, сгруппированные по адресу вызова - A-функции, B-функции и C-функции. 
 + 
 +A-Функции (вызов по вектору 0x00a0 с номером функции в регистре $t1):
  
 <code> <code>
Строка 179: Строка 181:
 </code> </code>
  
-B-Функции(вызов по адресу 0x00b0 с номером функции в регистре $t1):+B-Функции(вызов по вектору 0x00b0 с номером функции в регистре $t1):
  
 <code> <code>
Строка 272: Строка 274:
 </code> </code>
  
-C-Функции(вызов по адресу 0x00c0 с номером функции в регистре $t1):+C-Функции(вызов по вектору 0x00c0 с номером функции в регистре $t1):
  
 <code> <code>
Строка 323: Строка 325:
 </code> </code>
  
-===== Список версий BIOS ===== +===== Ссылки ===== 
-  * SCPH-1000 - Оригинальный японский BIOS. Выпущен в Японии 12/3/94. +  * https://psx.arthus.net/roms/bios/ - каталог дампов некоторых версий BIOS. 
-  * SCPH-1001 - Оригинальный североамериканский BIOS. Выпущен в Северной Америке 9/9/95. Нет выхода S-Video. +
-  * SCPH-1002 - Оригинальный европейский BIOS. Как и в SCPH-1001, нет выхода S-Video. +
-  * SCPH-3000 - Японская ревизия. +
-  * SCPH-3500 - Японская ревизия. Убран выход S-Video. +
-  * SCPH-5003 - Азиатская ревизия. +
-  * SCPH-5500 / ps-30j.bin (MD5: 8DD7D5296A650FAC7319BCE665A6A53C) - Японская ревизия. Механизм дисковода был перемещен, электроника на плате уменьшена примерно на 20%, отдельные порты для композитного A/V вывода были заменены портом A/V Multi Out. +
-  * SCPH-5501 / ps-30a.bin (MD5: 490F666E1AFB15B7362B406ED1CEA246) - Североамериканская версия 5500. +
-  * SCPH-5502 / ps-30e.bin (MD5: md5 32736f17079d0b2b7024407c39bd3050) - Европейская версия 5500. +
-  * SCPH-5552 - Европейская ревизия. +
-  * SCPH-5903 - Специальное бело-цветное издание PlayStation "Video CD", выпущенное только в большей части Азии. +
-  * SCPH-7000 - Первая японская аппаратная ревизия с Dual Shock. В комплект входил один контроллер Dual Shock (SCPH-1200), имеется программа светомузыки под названием SoundScope в меню CD-плеера (на самом деле это урезанная версия Baby Universe). +
-  * SCPH-7001 - Североамериканская 7000. +
-  * SCPH-7002 - Европейская 7000. +
-  * SCPH-7003 - Азиатская 7000. +
-  * SCPH-7500 - Японская ревизия. Дальнейшее уменьшение размеров материнской платы, переработанный системный BIOS. Sony выпустила это как "защищенную от модов" систему, но её довольно быстро взломали. +
-  * SCPH-7501 - Североамериканская 7500. +
-  * SCPH-7502 - Европейская 7500. +
-  * SCPH-7503 - Обновленная японская 7500. +
-  * SCPH-9000 - Японская ревизия. Дальнейшее уменьшение размеров материнской платы, плюс полное удаление параллельного I/O порта, чтобы попытаться помешать тем, кто делает чит-устройства и другие подобные продукты, которые подключаются к этому порту. Последняя серия аппаратных ревизий PS до SCPH-100 redesign. +
-  * SCPH-9001 - Североамериканская 9000. +
-  * SCPH-9002 - Европейская 9000. +
-  * SCPH-9003 - Азиатская 9000. +
-  * SCPH-100 - Также известна как PS one. Размер устройства уменьшен на треть, питание осуществляется от внешнего адаптера переменного тока, а не от внутреннего блока питания. Обновленный интерфейс BIOS. Оригинальная японская версия. +
-- SCPH-101 - Североамериканская 100. +
-- SCPH-102 - Европейская 100. +
-- PSXONPSP660.bin (MD5: C53CA5908936D412331790F4426C6C33) - BIOS PSX, включенный в прошивку PSP 6.60. Он был доработан Sony по сравнению с традиционными версиями BIOS, извлеченными из аппаратного обеспечения PSX. Этот BIOS обеспечивает повышенную производительность и совместимость во всех эмуляторах и не зависит от региона.+
bios.1766093483.txt.gz · Последнее изменение: — gecko

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC0 1.0 Universal
CC0 1.0 Universal Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki