====== CD-ROM ====== PlayStation оснащена CD-приводом двойной скорости. Пропускная способность - 150 KB/s или 300 KB/s в зависимости от режима скорости. Буфер данных составляет 32 KiB. Для данных используется стандартная файловая система ISO 9660. Поддерживается только уровень 1: имена файлов ограничены форматом 8.3, как в MS-DOS (8 символов на имя, 3 на расширение, только прописные буквы), максимальная глубина вложенности папок - 8 уровней, фрагментация не допускается. Данные размещаются в секторах формата CD-XA (Mode 2). В отличие от обычного CD, на одной дорожке диска CD-XA может располагаться самая разнообразная информация: компьютерные данные, звук, видео. В Mode 1 (стандартный CD-ROM) нельзя смешивать данные разного типа на одной дорожке. Mode 2 позволяет контроллеру на лету определять, куда отправлять информацию из сектора: видеопоток - на графический чип, аудиопоток - в звуковой вывод, обеспечивая синхронизацию. Каждый сектор имеет свой собственный формат: если это произвольные данные, то сектор записывается в формате Form 1 (2048 байт выделяется на пользовательские данные и 304 байта - под служебную информацию), если же это потоковые аудио- или видеоданные, то для сектора используется формат Form 2 (под пользовательские данные отводится уже 2324 байт, поскольку данные для коррекции ошибок отсутствуют, есть только контрольные байты для их обнаружения). ===== Сектор Mode 2 ===== Структура сектора Mode 2 Form 1: * 12 байт - код синхронизации: [0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00] * 4 байта - заголовок (header) * 4 байта - подзаголовок (sunheader) * 2048 байт - полезная нагрузка (данные) * 4 байта - EDC (контрольная сумма для проверки целостности данных) * 276 байт - ECC ([[reed_solomon_code|код Рида-Соломона]] для коррекции ошибок) Mode 2 Form 2, который используется для потоковых мультимедиа-данных, отличается отсутствием блока коррекции ошибок: * 12 байт - код синхронизации * 4 байта - заголовок * 4 байта - подзаголовок * 2324 байт - полезная нагрузка (аудио- или видеоданные) * 4 байта - EDC. ==== Подзаголовок (subheader) ==== Подзаголовок состоит из 4 байт. Структура подзаголовка выглядит следующим образом: * 1-й байт - для Form 2: номер файла (0x00..0xFF) * 2-й байт - для Form 2: номер канала (0x00..0x0F), биты 5-7 всегда должны быть равны нулю * 3-й байт - подрежим (Submode): * бит 0 - конец записи (EOR). Устанавливается для всех дескрипторов тома, а также для всех секторов, являющихся концом файла - EOF * биты 1, 2, 3 - видео, аудио, данные. Должен быть установлен только один из этих битов. Файлы формата [[STR]] помечаются как данные (а не как видео). * бит 4 - триггер (для использования приложением) * бит 5 - формат (Form): 0 = Form 1, 1 = Form 2 * бит 6 - реальное время (RT) * бит 7 - конец файла (или конец каталога / таблицы путей / терминатора тома) * 4-й байт - информация о кодировании (Coding Info). Для секторов данных этот байт равен нулю. Для секторов [[XA|XA-ADPCM]]: * биты 0-1 - моно/стерео (0 = моно, 1 = стерео, 2-3 = зарезервировано) * бит 2 - частота дискретизации (0 = 37800 Гц, 1 = 18900 Гц, 2-3 = зарезервировано) * биты 4–5 - битность (количество бит на отсчет): 0 = стандартно/4 бита, 1 = 8 бит, 2–3 = зарезервировано * бит 6 - предыскажение (Emphasis): 0 = обычный режим/выключено, 1 = включено * бит 7 - зарезервирован (0) Подзаголовок для обычных секторов данных обычно имеет вид [0x00, 0x00, 0x08, 0x00].