diff --git a/src/ZX_ROMS/new/SP_TRDOS.bin b/src/ZX_ROMS/new/SP_TRDOS.bin index 30813fb..cc1a621 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/bios/exp/EXP.asm b/src/bios/exp/EXP.asm index 4104c66..6723e78 100644 --- a/src/bios/exp/EXP.asm +++ b/src/bios/exp/EXP.asm @@ -927,28 +927,39 @@ No_Need_To_Load_ZXROMS: ; MODULE Prepare_For_Setup -Set_ALL_Mode: - LD A,#FF - LD BC,Port_All_Mode - OUT (C),A +Set_ALL_Mode: LD A,#FF + LD BC,Port_All_Mode + OUT (C),A Set_Default_Screen: - CALL FN_SYNC.INT_DEF ; set default int - ld a,128+4 ; !HARDCODE - ;ld c,BIOS.FN_SYNC - ;RST_to_BIOS_18 ; set default vsync - CALL FN_SYNC ; set default vsync -Setup_to_RAM: - LD HL,Setup_Starter.Start - LD DE,COMPILE_ADDR.SETUP_STARTER - LD BC,Setup_Starter.Length - LDIR - -; на стек кладётся адрес возврата и дальше тащится всякими костылями, чтоб вернуться назад - CALL Setup_Starter.Exec ; #C000 - - JP ZX_SPECTRUM_MODE ; выход в режим zx spectrum - + CALL FN_SYNC.INT_DEF ; set default int + ld a,128+4 ; !HARDCODE + ;ld c,BIOS.FN_SYNC + ;RST_to_BIOS_18 ; set default vsync + CALL FN_SYNC ; set default vsync +Setup_to_RAM: LD HL,Setup_Starter.Start + LD DE,COMPILE_ADDR.SETUP_STARTER + LD BC,Setup_Starter.Length + LDIR + ; на стек кладётся адрес возврата и дальше тащится всякими костылями, чтоб вернуться назад + CALL Setup_Starter.Exec ; #C000 +PrepareToZX: ; Setup HDD drives for ZX Spectrum mode + DI + LD D,CMOS_CELL.TRDOSmount + CALL CMOS_RD + AND %1010'1010 ; маска для 4-х HDD + JR Z,.start_zx + ; find first good partition + ; + XOR A +.loop: CALL FN_HDD_PART + JR NC,.start_zx + POP AF + INC A + CP #10 + JR C,.loop + ; выход в режим zx spectrum +.start_zx: JP ZX_SPECTRUM_MODE ENDMODULE ;*********************************** ; Инициализация портов diff --git a/src/bios/exp/FUNC_4x.ASM b/src/bios/exp/FUNC_4x.ASM index 00e89b3..27b443f 100644 --- a/src/bios/exp/FUNC_4x.ASM +++ b/src/bios/exp/FUNC_4x.ASM @@ -583,7 +583,7 @@ FN_HDD_PART: POP BC LD A,SYS_PAGE OUT (SLOT3),A - ;e tu + ; LD A,B LD (SYS_PAGE.CURRENT_HDD),A ; @@ -591,7 +591,6 @@ FN_HDD_PART: OUT (SLOT3),A ; CALL SET_BPB_OFFSET - ;AND A .exit: POP HL POP BC EI @@ -852,12 +851,20 @@ SET_BPB_OFFSET: .loop: ADD HL,DE DJNZ .loop ; - LD A,8 + LD A,_sMBR_PARTITION_RECORD.Start_LBA ADD L LD L,A LD DE,SYS_PAGE.HDD_PARTITION_OFFSET - LD C,4 + LD C,_sMBR_PARTITION_RECORD.Size_LBA - _sMBR_PARTITION_RECORD.Start_LBA LDIR + ; [x] 07/07/2024 fix bug with select empty partition record + EX DE,HL + XOR A + LD B,_sMBR_PARTITION_RECORD.Size_LBA - _sMBR_PARTITION_RECORD.Start_LBA +.loop2: DEC HL + OR (HL) + DJNZ .loop2 + SUB 1 ; EX AF,AF' OUT (SLOT3),A diff --git a/src/bios/exp/FUNC_CMOS.ASM b/src/bios/exp/FUNC_CMOS.ASM index e3c8c29..fac1e5d 100644 --- a/src/bios/exp/FUNC_CMOS.ASM +++ b/src/bios/exp/FUNC_CMOS.ASM @@ -100,4 +100,14 @@ CMOS_TEST: POP DE POP AF SCF - RET \ No newline at end of file + RET + +; Не портит HL +; GET_CMOS_VALUE: LD A,L +; CALL CMOS_RD +; AND H +; .loop: RRCA +; RRC H +; JR NC,.loop +; RLCA +; RET \ No newline at end of file diff --git a/src/bios/shared/RECOVERY.IMG b/src/bios/shared/RECOVERY.IMG index 9e7f4fe..4786914 100755 Binary files a/src/bios/shared/RECOVERY.IMG and b/src/bios/shared/RECOVERY.IMG differ diff --git a/src/bios/shared/includes.inc b/src/bios/shared/includes.inc index d48d5fd..3773dee 100644 --- a/src/bios/shared/includes.inc +++ b/src/bios/shared/includes.inc @@ -4,11 +4,12 @@ IF Pashalki INCLUDE 'Shared_Includes/structures/EasterSprites.inc' ENDIF + INCLUDE 'Shared_Includes/structures/FileSystem.inc' INCLUDE 'src/bios/Loader/Loader.asm' ; Bitstream loader as macros INCLUDE 'src/bios/shared/CompMacro.asm' ; макросы INCLUDE 'Shared_Includes/constants/SP2000.inc' ; константы INCLUDE 'Shared_Includes/constants/zx_char_codes.inc' ; константы - INCLUDE 'Shared_Includes/constants/zx_vars.inc' ; + INCLUDE 'Shared_Includes/constants/zx_vars.inc' ; INCLUDE 'Shared_Includes/macroses/macros.z80' INCLUDE 'src/bios/ROM/MEM_MAP.inc' ; карта памяти INCLUDE 'src/bios/shared/VERSION.inc' ; Версия EXP и ROM