From 85d161cd5da91d8a351a542abcc2590fb52047d6 Mon Sep 17 00:00:00 2001 From: sShemet Date: Mon, 21 Apr 2025 22:24:44 +0500 Subject: [PATCH] vault backup: 2025-04-21 22:24:44 --- .obsidian/workspace.json | 90 ++++++++++++------- .../PS1 DOCS/CD_Execute_Reading.md | 70 +++++++++++++++ 2 files changed, 130 insertions(+), 30 deletions(-) create mode 100644 PERSONAL PROJECTS/PS1 DOCS/CD_Execute_Reading.md diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 7f9435d..ad83e30 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -13,15 +13,44 @@ "state": { "type": "markdown", "state": { - "file": "WORK & PROJECTS/Mol/Серверы/git.moldev.ru.md", + "file": "My/Diet 1.md", "mode": "source", "source": false }, "icon": "lucide-file", - "title": "git.moldev.ru" + "title": "Diet 1" + } + }, + { + "id": "b53a01957dbe5e78", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "My/Diet 2.md", + "mode": "source", + "source": false + }, + "icon": "lucide-file", + "title": "Diet 2" + } + }, + { + "id": "dd912cc876184c4f", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "PERSONAL PROJECTS/PS1 DOCS/CD_Execute_Reading.md", + "mode": "source", + "source": false + }, + "icon": "lucide-file", + "title": "CD_Execute_Reading" } } - ] + ], + "currentTab": 2 } ], "direction": "vertical" @@ -78,7 +107,7 @@ } ], "direction": "horizontal", - "width": 314.5 + "width": 373.5 }, "right": { "id": "5a12b65cf742d665", @@ -175,53 +204,54 @@ "obsidian-git:Open Git source control": false } }, - "active": "343836aed0394d03", + "active": "dd912cc876184c4f", "lastOpenFiles": [ - "PERSONAL PROJECTS/P2EP/cdRead.canvas", - "PERSONAL PROJECTS/PS1 DOCS/PSX code texture load unpack show and fade.md", - "PERSONAL PROJECTS/PS1 DOCS/PSX code logo show.md", "PERSONAL PROJECTS/PS1 DOCS/PSX code Gamepad code.md", - "WORK & PROJECTS/Mol/Планы и диаграммы/Разработка - ЭПИКИ.md", + "PERSONAL PROJECTS/PS1 DOCS/CD_Execute_Reading.md", + "PERSONAL PROJECTS/PS1 DOCS/PSX code logo show.md", + "PERSONAL PROJECTS/PS1 DOCS/PSX code - Load texture from SECTOR!.md", "WORK & PROJECTS/Mol/Code Chunks/TipTap Plugin.md", - "WORK & PROJECTS/Mol/Code Chunks", + "PERSONAL PROJECTS/PS1 DOCS/PS1 Gamepad.md", + "PERSONAL PROJECTS/P2EP/pseudoCode/FUN_800453e0 SystemEventManager.md", + "PERSONAL PROJECTS/P2EP/pseudoCode/FUN_80015674 Update Entity Stats.md", + "PERSONAL PROJECTS/P2EP/pseudoCode/MakeSmallChar.md", + "PERSONAL PROJECTS/P2EP/pseudoCode/FUN_80012df4 RenderInterface.md", + "PERSONAL PROJECTS/P2EP/pseudoCode/FUN_80011f2c InitInterfaceManager.md", + "PERSONAL PROJECTS/PS1 DOCS/PS1 IRQ.md", + "PERSONAL PROJECTS/P2EP/pseudoCode", + "PERSONAL PROJECTS/PS1 DOCS/Untitled", + "PERSONAL PROJECTS/PS1 DOCS/fade calculation.md", + "PERSONAL PROJECTS/PS1 DOCS/PS1 Gpu-DMA.md", + "PERSONAL PROJECTS/PS1 DOCS/PS1 Ordering table.md", + "PERSONAL PROJECTS/PS1 DOCS/PS1 DMA.md", + "PERSONAL PROJECTS/PS1 DOCS/PS1 MDEC.md", "PERSONAL PROJECTS/PS1 DOCS/PSX code IRQ handling.md", + "PERSONAL PROJECTS/PS1 DOCS/PS1 Geometry Transformation Engine.md", + "PERSONAL PROJECTS/PS1 DOCS/LZSS C++ Lib.md", + "PERSONAL PROJECTS/PS1 DOCS", + "PERSONAL PROJECTS/PS1 DOCS/PSX code texture load unpack show and fade.md", "PERSONAL PROJECTS/PS1 DOCS/PSX code inline asm.md", "PERSONAL PROJECTS/PS1 DOCS/PSX code - Texture show from file.md", "PERSONAL PROJECTS/PS1 DOCS/PSX code - modules load and exec.md", - "PERSONAL PROJECTS/PS1 DOCS/PSX code - Load texture from SECTOR!.md", "PERSONAL PROJECTS/PS1 DOCS/PS1 Vblank.md", - "PERSONAL PROJECTS/PS1 DOCS/PS1 Ordering table.md", - "PERSONAL PROJECTS/PS1 DOCS/PS1 IRQ.md", - "PERSONAL PROJECTS/PS1 DOCS/PS1 MDEC.md", - "PERSONAL PROJECTS/PS1 DOCS/PS1 Gpu-DMA.md", - "PERSONAL PROJECTS/PS1 DOCS/PS1 Geometry Transformation Engine.md", - "PERSONAL PROJECTS/PS1 DOCS/PS1 Gamepad.md", - "PERSONAL PROJECTS/PS1 DOCS/PS1 DMA.md", "PERSONAL PROJECTS/PS1 DOCS/PS1 DMA CD-ROM.md", - "PERSONAL PROJECTS/PS1 DOCS/LZSS C++ Lib.md", - "PERSONAL PROJECTS/PS1 DOCS/fade calculation.md", - "PERSONAL PROJECTS/PS1 DOCS", - "PERSONAL PROJECTS/P2EP/pseudoCode/FUN_800453e0 SystemEventManager.md", - "PERSONAL PROJECTS/P2EP/pseudoCode/MakeSmallChar.md", - "PERSONAL PROJECTS/P2EP/pseudoCode/FUN_80015674 Update Entity Stats.md", - "PERSONAL PROJECTS/P2EP/pseudoCode/FUN_80012df4 RenderInterface.md", - "PERSONAL PROJECTS/P2EP/pseudoCode", "WORK & PROJECTS/Mol/Документы для ТЗ ЛИМС/СМК/КУ_Чек_лист_10_ошибок_УД_скачивание.pdf", "WORK & PROJECTS/Mol/Документы для ТЗ ЛИМС/СМК", + "WORK & PROJECTS/Mol/Планы и диаграммы/00001_Редактор_форм/Таблицы нумератора и документов.canvas", "WORK & PROJECTS/Mol/Планы и диаграммы/Схема связей юрлиц и адресов.canvas", + "WORK & PROJECTS/Mol/Планы и диаграммы/00001_Редактор_форм/Архитектура редактора и генератора (Alfa + Mol).canvas", + "WORK & PROJECTS/Mol/Планы и диаграммы/Alfa Cloud/Alfa cloud prod.canvas", + "WORK & PROJECTS/Mol/Планы и диаграммы/00001_Быстрый старт/Быстрый старт.canvas", "My", "WORK & PROJECTS/Mol/Планы и диаграммы/Alfa Cloud", "Структура объектов испытаний.png", "Схема связей юрлиц и адресов.png", - "WORK & PROJECTS/Mol/Планы и диаграммы/00001_Редактор_форм/Архитектура редактора и генератора (Alfa + Mol).canvas", - "WORK & PROJECTS/Mol/Планы и диаграммы/00001_Редактор_форм/Таблицы нумератора и документов.canvas", "Структура объектов испытаний.png.0.pdnSave", "WORK & PROJECTS/Mol/Документы для ТЗ ЛИМС/АФ-01 Альбом форм.pdf", "WORK & PROJECTS/Mol/Серверы/Схема инфраструктуры.canvas", - "WORK & PROJECTS/Mol/Планы и диаграммы/00001_Быстрый старт/Быстрый старт.canvas", - "WORK & PROJECTS/Mol/Планы и диаграммы/Alfa Cloud/Alfa cloud prod.canvas", "WORK & PROJECTS/Ulab/Автобан/щебень 5-20.xlsx", "WORK & PROJECTS/Mol/Серверы/Alfa cloud prod.canvas", + "PERSONAL PROJECTS/P2EP/cdRead.canvas", "P2EP/cdRead.canvas", "WORK & PROJECTS/img/Pasted image 20241212175419.png", "WORK & PROJECTS/img/Pasted image 20241212175847.png", diff --git a/PERSONAL PROJECTS/PS1 DOCS/CD_Execute_Reading.md b/PERSONAL PROJECTS/PS1 DOCS/CD_Execute_Reading.md new file mode 100644 index 0000000..c2f5bb7 --- /dev/null +++ b/PERSONAL PROJECTS/PS1 DOCS/CD_Execute_Reading.md @@ -0,0 +1,70 @@ + + +``` c (PSX) +void CD_ExecuteReading(int param_1) +{ + // Проверка статуса чтения CD + if ((DAT_CD_READ_STATUS < 3) && (DAT_CD_READ_STATUS >= 0)) { + return; + } + + // Проверка глобального состояния системы + if ((DWORD_80083938 == 6) || (DWORD_80083938 == 3)) { + return; + } + + // Проверка изменения состояния + if (DWORD_800838b8 != DWORD_80083718) { + DWORD_800838b8 = DWORD_80083718; + FUN_EMPTY(); // Какая-то инициализация/сброс + + // Основная логика обработки состояний + switch (DAT_CD_READ_STATUS) { + case 3: + case 5: + case 8: + case 10: + // Проверка статуса привода + byte driveStatus = DsStatus(); + + // Условие для смены статуса + if ((driveStatus & 0x60) == 0 && (DWORD_80083718 - DWORD_800838b4) >= 0xB5) { + DAT_CD_READ_STATUS = 2; + FUN_8004a19c(); // Какая-то функция обработки + + // Дополнительные проверки статуса + if (DAT_CD_READ_STATUS != 5) { + if (DAT_CD_READ_STATUS < 6) { + if (DAT_CD_READ_STATUS == 3) { + FUN_80026d58(); // Обработка состояния 3 + } + } else { + if (DAT_CD_READ_STATUS == 10) { + DsSectorSeek(); // Поиск сектора + } else if (DAT_CD_READ_STATUS == 12) { + readCD_XA(); // Чтение XA-аудио + } + } + } + } + break; + + case 5: + // Специальная обработка для состояния 5 + if (DsSystemStatus() == 1) { + FUN_80026eec(); // Функция завершения + } + break; + + default: + // Ничего не делаем для других состояний + break; + } + } + + // Чтение сектора, если статус в диапазоне 0xC-0xF + if ((DAT_CD_READ_STATUS >= 0xC) && (DAT_CD_READ_STATUS < 0x10)) { + CD_SectorRead(param_1); + } +} +``` \ No newline at end of file