diff --git a/bios_sp.a80 b/bios_sp.a80 index ed65990..a419ced 100644 --- a/bios_sp.a80 +++ b/bios_sp.a80 @@ -143,8 +143,10 @@ REINITMODE .SET_ZXPAGES EQU 4 DRV_EXTENDED -.CD_Eject EQU 0x00 ; Открыть лоток CD -.CD_Close EQU 0x01 ; Закрыть лоток CD +.ATAPI_Eject EQU 0x00 ; Открыть лоток CD +.ATAPI_Close EQU 0x01 ; Закрыть лоток CD +.ATAPI_Request_Sense EQU 0x02 +.ATAPI_Custom_PCMD EQU 0x03 FN_CRIPT .BOARDNUMBER EQU 0x01 ; Выдача полного Board Number diff --git a/dss_errors.a80 b/dss_errors.a80 new file mode 100644 index 0000000..adff494 --- /dev/null +++ b/dss_errors.a80 @@ -0,0 +1,121 @@ + +; LAST UPDATE: 29.06.2025 savelij + +;----------------------------------------------------------------------- +SYS_ERRORS: DB 0 + IFDEF SHELL_COMPILATION + DZ "Bad command or file name" ; 00 + ELSE + DZ "Unknown error" ; 00 + ENDIF + DZ "Invalid function" ; 01 - неверный номер функции + DZ "Invalid drive number" ; 02 - неправильный номер устройства + DZ "File not found" ; 03 - файл не обнаружен + DZ "Path not found" ; 04 - неверный путь + DZ "Invalid handle" ; 05 - несуществующий файловый манипулятор + DZ "Too many open files" ; 06 - нет свободного файлового манипулятора + DZ "File already exist" ; 07 - файл существует + DZ "File read only" ; 08 - файл только для чтения + DZ "Root overflow" ; 09 - переполнение ROOT (корневого каталога) + DZ "No free space" ; 10 - нет свободного места на диске + DZ "Directory not empty" ; 11 - каталог не пуст + DZ "Can't delete current directory" ; 12 - неудачная попытка удалить текущий каталог + DZ "Invalid media" ; 13 - неизвестный формат + DZ "Unknown operation" ;R02 ; 14 - невозможная операция + DZ "Directory exist" ; 15 - каталог уже есть + DZ "Invalid filename" ; 16 - неверное имя + DZ "Invalid EXE-file" ; 17 - неправильный EXE-файл + DZ "Not supported EXE-file" ; 18 - не поддерживаемая версия EXE-файла + DZ "Access denied" ; 19 - Доступ запрещен + DZ "Not ready" ; 20 - нет готовности + DZ "Seek error" ; 21 - ошибка позиционирования + DZ "Sector not found" ; 22 - сектор не найден + DZ "CRC error" ; 23 - ошибка CRC + DZ "Drive is write protected" ; 24 - защита записи + DZ "Read error" ; 25 - ошибка чтения + DZ "Write error" ; 26 - ошибка записи + DZ "Drive failure" ; 27 - сбой диска + DZ "Warning! Media changed" ; 28 - Media changed + DZ "Device busy or media unreadable" ; 29 - Device busy or media unreadable + DZ "Not enough memory" ; 30 - недостаточно памяти + DZ "Invalid memory block" ; 31 - несуществующий блок памяти + DZ "Operation not supported" ; 32 - Операция не поддерживается + DZ "Maximum PATH size exceeded" ; 33 - превышен максимальный размер переменной + DZ "E34" ; 34 - Reserved + DZ "Too many files in directory" ; 35 - слишком много файлов в директории + DZ "Directory nesting too large or number of folders > 1023" ; 36 - слишком большая вложенность каталогов или количество папок > 1023 + DZ "Operation aborted by user" ; 37 - операция прервана пользователем + DZ "Common error" ; 38 - общая ошибка + DZ "Unexpected application termination" ; 39 - unexpected application termination / неожиданное завершение приложения + DZ "E40" ; 40 - Reserved + DZ "E41" ; 41 - Reserved + DZ "E42" ; 42 - Reserved + DZ "E43" ; 43 - Reserved + DZ "E44" ; 44 - Reserved + DZ "E45" ; 45 - Reserved + DZ "E46" ; 46 - Reserved + DZ "E47" ; 47 - Reserved + DZ "Wrong video mode" ; 48 - неправильный видеорежим + ;R11 + DB 0 ; ограничитель, чтоб при ошибке больше, чем есть сообщений выдавалось общее: + DZ "Unknown error" + +.Size EQU $-SYS_ERRORS + +;----------------------------------------------------------------------- +; ошибки драйверов накопителей +DRV_ERRORS: DB 0 + DZ "e0" ; 000 - NO ERRORS + DZ "Bad command" ; 001 - BAD COMMAND + DZ "Bad drive number" ; 002 - BAD DRIVE NUMBER + DZ "Unknown format" ; 003 - UNKNOW FORMAT + DZ "Not ready" ; 004 - NOT READY + DZ "Seek error" ; 005 - SEEK ERROR + DZ "Sector not found" ; 006 - SECTOR NOT FOUND + DZ "CRC error" ; 007 - CRC ERROR + DZ "Write protect" ; 008 - WRITE PROTECT + DZ "Read error" ; 009 - READ ERROR + DZ "Write failure" ; 010 - WRITE ERROR + DZ "General failure" ; 011 - FAILURE + DZ "Device busy or no media" ; 012 - BUSY (DEVICE OPENED) + DZ "e13" ; 013 + DZ "e14" ; 014 + DZ "e15" ; 015 + DZ "e16" ; 016 + DZ "e17" ; 017 + DZ "e18" ; 018 + DZ "e19" ; 019 + DZ "e20" ; 020 + DZ "e21" ; 021 + DZ "e22" ; 022 + DZ "e23" ; 023 + DZ "e24" ; 024 + DZ "e25" ; 025 + DZ "e26" ; 026 + DZ "e27" ; 027 + DZ "e28" ; 028 + DZ "e29" ; 029 + DZ "e30" ; 030 + DZ "e31" ; 031 + ; ATAPI + DZ "e32" ; 032 + DZ "e33" ; 033 + DZ "Drive not ready" ; 034 + DZ "No Media" ; 035 + DZ "Hardware Error" ; 036 + DZ "e37" ; 037 + DZ "Media Changed" ; 038 + DZ "e39" ; 039 + DZ "e40" ; 040 + DZ "e41" ; 041 + DZ "e42" ; 042 + DZ "e43" ; 043 + DZ "e44" ; 044 + DZ "e45" ; 045 + DZ "e46" ; 046 + DZ "e47" ; 047 + DZ "Time out" ; 048 + + DB 0 ; ограничитель, чтоб при ошибке больше, чем есть сообщений выдавалось общее: + DZ "Unknown drive error" +.Size EQU $-DRV_ERRORS diff --git a/errors_sp.a80 b/errors_sp.a80 index 323932d..2ca85ef 100644 --- a/errors_sp.a80 +++ b/errors_sp.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 13.05.2025 savelij +; LAST UPDATE: 29.06.2025 savelij ERR_DSS _INIT_VAR @@ -47,20 +47,42 @@ ERR_DSS _SETVAR .INVALID_VIDEO_MODE ; EQU 0x30 ; 48 - неправильный видеорежим ERR_DRV -.NO_ERROR EQU 0x00 ; 00 - NO ERRORS -.INVALID_COMMAND EQU 0x01 ; 01 - BAD COMMAND -.INVALID_DRIVE EQU 0x02 ; 02 - BAD DRIVE NUMBER -.UNKNOWN_FORMAT EQU 0x03 ; 03 - UNKNOW FORMAT -.NOT_READY EQU 0x04 ; 04 - NOT READY -.SEEK_ERROR EQU 0x05 ; 05 - SEEK ERROR -.SECTOR_NOT_FOUND EQU 0x06 ; 06 - SECTOR NOT FOUND -.CRC_ERROR EQU 0x07 ; 07 - CRC ERROR -.WRITE_PROTECT EQU 0x08 ; 08 - WRITE PROTECT -.READ_ERROR EQU 0x09 ; 09 - READ ERROR -.WRITE_ERROR EQU 0x0A ; 10 - WRITE ERROR -.GENERAL_FAILURE EQU 0x0B ; 11 - FAILURE -.DEVICE_BUSY EQU 0x0C ; 12 - BUSY (DEVICE OPENED) + _INIT_VAR + _SETVAR .NO_ERROR ; EQU 0x00 ; 00 - NO ERRORS + _SETVAR .INVALID_COMMAND ; EQU 0x01 ; 01 - BAD COMMAND + _SETVAR .INVALID_DRIVE ; EQU 0x02 ; 02 - BAD DRIVE NUMBER + _SETVAR .UNKNOWN_FORMAT ; EQU 0x03 ; 03 - UNKNOW FORMAT + _SETVAR .NOT_READY ; EQU 0x04 ; 04 - NOT READY + _SETVAR .SEEK_ERROR ; EQU 0x05 ; 05 - SEEK ERROR + _SETVAR .SECTOR_NOT_FOUND ; EQU 0x06 ; 06 - SECTOR NOT FOUND + _SETVAR .CRC_ERROR ; EQU 0x07 ; 07 - CRC ERROR + _SETVAR .WRITE_PROTECT ; EQU 0x08 ; 08 - WRITE PROTECT + _SETVAR .READ_ERROR ; EQU 0x09 ; 09 - READ ERROR + _SETVAR .WRITE_ERROR ; EQU 0x0A ; 10 - WRITE ERROR + _SETVAR .GENERAL_FAILURE ; EQU 0x0B ; 11 - FAILURE + _SETVAR .DEVICE_BUSY ; EQU 0x0C ; 12 - BUSY (DEVICE OPENED) ;.RESERVED EQU 0x0D ; 13 - RESERVED + _INIT_VAR 0x20 + _SETVAR .ATAPI_NoSence + _SETVAR .ATAPI_RecoveredError ; EQU #01 + Error.ATAPI + _SETVAR .ATAPI_NotReady ; EQU #02 + Error.ATAPI + _SETVAR .ATAPI_MediumError ; EQU #03 + Error.ATAPI + _SETVAR .ATAPI_HardwareError ; EQU #04 + Error.ATAPI + _SETVAR .ATAPI_IllegalRequest ; EQU #05 + Error.ATAPI + _SETVAR .ATAPI_UnitAttention ; EQU #06 + Error.ATAPI ; MediaChanged + _SETVAR .ATAPI_DataProtect ; EQU #07 + Error.ATAPI +; EQU #08 + Error.ATAPI +; EQU #09 + Error.ATAPI +; EQU #0A + Error.ATAPI + _ADDVAR 3 + _SETVAR .ATAPI_AbortedCommand ; EQU #0B + Error.ATAPI +; EQU #0C + Error.ATAPI +; EQU #0D + Error.ATAPI + _ADDVAR 2 + _SETVAR .ATAPI_Miscompare ; EQU #0E + Error.ATAPI +; EQU #0F + Error.ATAPI + _ADDVAR 1 + _SETVAR .ATAPI_TimeOut ; EQU #10 + Error.ATAPI ERR_MOUSE .NO_ERROR EQU 0x00 ; 0 - NO ERROR diff --git a/macros_sp.a80 b/macros_sp.a80 index 2de361e..f70a02f 100644 --- a/macros_sp.a80 +++ b/macros_sp.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 05.06.2025 savelij +; LAST UPDATE: 05.07.2025 savelij ; для вызывов BIOS ; RGC - номер функции BIOS @@ -219,3 +219,6 @@ HDR_EXE MACRO ORGADR,VERSION,PRIMARYLOADER,ADRLOAD,ADRSTART,ADRSTACK,RESERVED ENDIF .END ENDM + +; формирователь текстовой строки даты сборки +BUILDDATE EQU "\{(DDATE / 10) + '0'}\{(DDATE # 10) + '0'}.\{MMOUNTH / 10 + '0'}\{MMOUNTH # 10 + '0'}.20\{(YYEAR / 10) + '0'}\{(YYEAR # 10) + '0'}"