diff --git a/Shared_Includes b/Shared_Includes index 809ea1f..b69773d 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit 809ea1f0b204f2d56555497c1c808806833d6315 +Subproject commit b69773d50cb2c0e1da44f7f20c7daa32871f2308 diff --git a/src/ZX_ROMS/new/SP_TRDOS.bin b/src/ZX_ROMS/new/SP_TRDOS.bin index 787e971..e7432e7 100644 Binary files a/src/ZX_ROMS/new/SP_TRDOS.bin and b/src/ZX_ROMS/new/SP_TRDOS.bin differ diff --git a/src/ZX_ROMS/new/ZX_EXP2.bin b/src/ZX_ROMS/new/ZX_EXP2.bin index 20c5995..997d297 100644 Binary files a/src/ZX_ROMS/new/ZX_EXP2.bin and b/src/ZX_ROMS/new/ZX_EXP2.bin differ diff --git a/src/ZX_ROMS/new/_SP_TRDOS.bin b/src/ZX_ROMS/new/_SP_TRDOS.bin new file mode 100644 index 0000000..787e971 Binary files /dev/null and b/src/ZX_ROMS/new/_SP_TRDOS.bin differ diff --git a/src/bios/exp/BIOS_FUNC.asm b/src/bios/exp/BIOS_FUNC.asm index 1589ce1..3d7726d 100644 --- a/src/bios/exp/BIOS_FUNC.asm +++ b/src/bios/exp/BIOS_FUNC.asm @@ -2,45 +2,45 @@ MACRO _mNoDrive_5xTable numberOFdrives, byteOFword IF byteOFword DUP numberOFdrives - DB high FN_RESERVED_5x ;#50 - Дубль. На эту функцию прыгает из основного обработчика + DB high FN_RESERVED_5x ;#50 - Дубль. На эту функцию прыгает из основного обработчика - DB high FN_ABSENT_5x ;#51 - DB high FN_ABSENT_5x ;#52 - DB high FN_ABSENT_5x ;#53 - DB high FN_ABSENT_5x ;#54 - DB high FN_ABSENT_5x ;#55 - DB high FN_ABSENT_5x ;#56 - DB high FN_ABSENT_5x ;#57 - DB high FN_ABSENT_5x ;#58 - DB high FN_ABSENT_5x ;#59 + DB high FN_ABSENT_5x ;#51 + DB high FN_ABSENT_5x ;#52 + DB high FN_ABSENT_5x ;#53 + DB high FN_ABSENT_5x ;#54 + DB high FN_ABSENT_5x ;#55 + DB high FN_ABSENT_5x ;#56 + DB high FN_ABSENT_5x ;#57 + DB high FN_ABSENT_5x ;#58 + DB high FN_ABSENT_5x ;#59 - DB high DRV_VERSION ;#5A - Дубль. На эту функцию прыгает из основного обработчика - DB high FN_RESERVED_5x ;#5B - Дубль. На эту функцию прыгает из основного обработчика - DB high FN_RESERVED_5x ;#5C - Дубль. На эту функцию прыгает из основного обработчика - DB high FN_RESERVED_5x ;#5D - Дубль. На эту функцию прыгает из основного обработчика - DB high FN_RESERVED_5x ;#5E - Дубль. На эту функцию прыгает из основного обработчика - DB high DRV_LIST ;#5F - Дубль. На эту функцию прыгает из основного обработчика + DB high DRV_VERSION ;#5A - Дубль. На эту функцию прыгает из основного обработчика + DB high FN_RESERVED_5x ;#5B - Дубль. На эту функцию прыгает из основного обработчика + DB high FN_RESERVED_5x ;#5C - Дубль. На эту функцию прыгает из основного обработчика + DB high FN_RESERVED_5x ;#5D - Дубль. На эту функцию прыгает из основного обработчика + DB high FN_RESERVED_5x ;#5E - Дубль. На эту функцию прыгает из основного обработчика + DB high DRV_LIST ;#5F - Дубль. На эту функцию прыгает из основного обработчика EDUP ELSE DUP numberOFdrives - DB low FN_RESERVED_5x ;#50 - Дубль. На эту функцию прыгает из основного обработчика + DB low FN_RESERVED_5x ;#50 - Дубль. На эту функцию прыгает из основного обработчика - DB low FN_ABSENT_5x ;#51 - DB low FN_ABSENT_5x ;#52 - DB low FN_ABSENT_5x ;#53 - DB low FN_ABSENT_5x ;#54 - DB low FN_ABSENT_5x ;#55 - DB low FN_ABSENT_5x ;#56 - DB low FN_ABSENT_5x ;#57 - DB low FN_ABSENT_5x ;#58 - DB low FN_ABSENT_5x ;#59 + DB low FN_ABSENT_5x ;#51 + DB low FN_ABSENT_5x ;#52 + DB low FN_ABSENT_5x ;#53 + DB low FN_ABSENT_5x ;#54 + DB low FN_ABSENT_5x ;#55 + DB low FN_ABSENT_5x ;#56 + DB low FN_ABSENT_5x ;#57 + DB low FN_ABSENT_5x ;#58 + DB low FN_ABSENT_5x ;#59 - DB low DRV_VERSION ;#5A - Дубль. На эту функцию прыгает из основного обработчика - DB low FN_RESERVED_5x ;#5B - Дубль. На эту функцию прыгает из основного обработчика - DB low FN_RESERVED_5x ;#5C - Дубль. На эту функцию прыгает из основного обработчика - DB low FN_RESERVED_5x ;#5D - Дубль. На эту функцию прыгает из основного обработчика - DB low FN_RESERVED_5x ;#5E - Дубль. На эту функцию прыгает из основного обработчика - DB low DRV_LIST ;#5F - Дубль. На эту функцию прыгает из основного обработчика + DB low DRV_VERSION ;#5A - Дубль. На эту функцию прыгает из основного обработчика + DB low FN_RESERVED_5x ;#5B - Дубль. На эту функцию прыгает из основного обработчика + DB low FN_RESERVED_5x ;#5C - Дубль. На эту функцию прыгает из основного обработчика + DB low FN_RESERVED_5x ;#5D - Дубль. На эту функцию прыгает из основного обработчика + DB low FN_RESERVED_5x ;#5E - Дубль. На эту функцию прыгает из основного обработчика + DB low DRV_LIST ;#5F - Дубль. На эту функцию прыгает из основного обработчика EDUP ENDIF ENDM diff --git a/src/bios/exp/EXTENDED/HDD_DRIVER_6.asm b/src/bios/exp/EXTENDED/HDD_DRIVER_6.asm index ea9b818..80bf3ae 100644 --- a/src/bios/exp/EXTENDED/HDD_DRIVER_6.asm +++ b/src/bios/exp/EXTENDED/HDD_DRIVER_6.asm @@ -428,7 +428,7 @@ HERRWR0 LD B,A LD A,B LD B,C SCF ;R03 - EX AF,AF' ;R03 + EX AF,AF' ;R03 ;!FIXIT намудрил он чёт в этом R03 RST8WRR EXX POP BC OUT (C),B diff --git a/src/bios/exp/FUNC_RAM_ROM_DRV.ASM b/src/bios/exp/FUNC_RAM_ROM_DRV.ASM index 417eb98..5b22aab 100644 --- a/src/bios/exp/FUNC_RAM_ROM_DRV.ASM +++ b/src/bios/exp/FUNC_RAM_ROM_DRV.ASM @@ -192,11 +192,12 @@ EMM.GetMemRMD: RET NC .error2: LD L,2 ; RAM-Disk занят ;!TODO перечислить все варианты ошибок и их номера как для ДСС + LD A,L RET .error1: - POP AF ; нет памяти - LD L,1 - SCF + POP HL ; чистим стек + LD L,A + ;SCF RET ;----------------------------------------------------------------------; ; @@ -216,7 +217,7 @@ EMM.FreeMemRMD: LD B,A LD A,SYS_PAGE OUT (SLOT3),A - LD H,high SYS_PAGE.RAMD_FAT; - #4000 - #4000 + LD H,high SYS_PAGE.RAMD_KEYS; - #4000 - #4000 LD (HL),0 LD A,B OUT (SLOT3),A @@ -977,6 +978,7 @@ BLK_BUSY: OUT (SLOT3),A SCF POP HL + LD A,L RET ;----------------------------------------------------------------------; ; diff --git a/src/bios/rom/ZX/ZX_MENU.ASM b/src/bios/rom/ZX/ZX_MENU.ASM index 518f7ac..a7e543d 100644 --- a/src/bios/rom/ZX/ZX_MENU.ASM +++ b/src/bios/rom/ZX/ZX_MENU.ASM @@ -423,14 +423,12 @@ CLEAR_RAM: DI LD C,BIOS.FullInit RST_to_BIOS - ;CALL ToBIOS_3D13 - ; при очистке памяти из меню спектрума возврат в DSS по CAD - ; будет опасным (RAM Blocks освободились), - ; поэтому отключаем перехват ресета. - ;!TODO придумать как отключать перехват только на возврат в DSS - LD A,ACEX.RET_PORT - LD BC,BIOS.SET_PORTS - CALL ToBIOS_3D13 + ; при очистке памяти из меню спектрума возврат в DSS по CAD + ; будет опасным (RAM Blocks освободились), + ; поэтому отключаем перехват ресета. + LD A,ACEX.RET_PORT + LD BC,BIOS.SET_PORTS + CALL ToBIOS_3D13 EI RET diff --git a/src/bios/shared/RECOVERY.IMG b/src/bios/shared/RECOVERY.IMG index 168e32a..90cfc87 100755 Binary files a/src/bios/shared/RECOVERY.IMG and b/src/bios/shared/RECOVERY.IMG differ