ZX: корректно подключается HDD из настроек "TR DOS X:>"

This commit is contained in:
Tolik 2024-07-08 00:49:04 +10:00
parent aef4d4e6d3
commit 1631724a93
6 changed files with 55 additions and 26 deletions

Binary file not shown.

View File

@ -927,8 +927,7 @@ No_Need_To_Load_ZXROMS:
; ;
MODULE Prepare_For_Setup MODULE Prepare_For_Setup
Set_ALL_Mode: Set_ALL_Mode: LD A,#FF
LD A,#FF
LD BC,Port_All_Mode LD BC,Port_All_Mode
OUT (C),A OUT (C),A
@ -938,17 +937,29 @@ Set_Default_Screen:
;ld c,BIOS.FN_SYNC ;ld c,BIOS.FN_SYNC
;RST_to_BIOS_18 ; set default vsync ;RST_to_BIOS_18 ; set default vsync
CALL FN_SYNC ; set default vsync CALL FN_SYNC ; set default vsync
Setup_to_RAM: Setup_to_RAM: LD HL,Setup_Starter.Start
LD HL,Setup_Starter.Start
LD DE,COMPILE_ADDR.SETUP_STARTER LD DE,COMPILE_ADDR.SETUP_STARTER
LD BC,Setup_Starter.Length LD BC,Setup_Starter.Length
LDIR LDIR
; ­  á⥪ ª« ¤ñâáï  ¤à¥á ¢®§¢à â  ¨ ¤ «ìè¥ â é¨âáï ¢á直¬¨ ª®áâë«ï¬¨, ç⮡ ¢¥à­ãâìáï ­ § ¤
; ­  á⥪ ª« ¤ñâáï  ¤à¥á ¢®§¢à â  ¨ ¤ «ìè¥ â é¨âáï ¢á直¬¨ ª®áâë«ï¬¨, ç⮡ ¢¥à­ãâìáï ­ § ¤
CALL Setup_Starter.Exec ; #C000 CALL Setup_Starter.Exec ; #C000
PrepareToZX: ; Setup HDD drives for ZX Spectrum mode
JP ZX_SPECTRUM_MODE ; ¢ë室 ¢ ०¨¬ zx spectrum 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 ENDMODULE
;*********************************** ;***********************************
; ˆ­¨æ¨ «¨§ æ¨ï ¯®à⮢ ; ˆ­¨æ¨ «¨§ æ¨ï ¯®à⮢

View File

@ -583,7 +583,7 @@ FN_HDD_PART:
POP BC POP BC
LD A,SYS_PAGE LD A,SYS_PAGE
OUT (SLOT3),A OUT (SLOT3),A
;e tu ;
LD A,B LD A,B
LD (SYS_PAGE.CURRENT_HDD),A LD (SYS_PAGE.CURRENT_HDD),A
; ;
@ -591,7 +591,6 @@ FN_HDD_PART:
OUT (SLOT3),A OUT (SLOT3),A
; ;
CALL SET_BPB_OFFSET CALL SET_BPB_OFFSET
;AND A
.exit: POP HL .exit: POP HL
POP BC POP BC
EI EI
@ -852,12 +851,20 @@ SET_BPB_OFFSET:
.loop: ADD HL,DE .loop: ADD HL,DE
DJNZ .loop DJNZ .loop
; ;
LD A,8 LD A,_sMBR_PARTITION_RECORD.Start_LBA
ADD L ADD L
LD L,A LD L,A
LD DE,SYS_PAGE.HDD_PARTITION_OFFSET LD DE,SYS_PAGE.HDD_PARTITION_OFFSET
LD C,4 LD C,_sMBR_PARTITION_RECORD.Size_LBA - _sMBR_PARTITION_RECORD.Start_LBA
LDIR 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' EX AF,AF'
OUT (SLOT3),A OUT (SLOT3),A

View File

@ -101,3 +101,13 @@ CMOS_TEST:
POP AF POP AF
SCF SCF
RET RET
; <20>¥ ¯®àâ¨â HL
; GET_CMOS_VALUE: LD A,L
; CALL CMOS_RD
; AND H
; .loop: RRCA
; RRC H
; JR NC,.loop
; RLCA
; RET

Binary file not shown.

View File

@ -4,6 +4,7 @@
IF Pashalki IF Pashalki
INCLUDE 'Shared_Includes/structures/EasterSprites.inc' INCLUDE 'Shared_Includes/structures/EasterSprites.inc'
ENDIF ENDIF
INCLUDE 'Shared_Includes/structures/FileSystem.inc'
INCLUDE 'src/bios/Loader/Loader.asm' ; Bitstream loader as macros INCLUDE 'src/bios/Loader/Loader.asm' ; Bitstream loader as macros
INCLUDE 'src/bios/shared/CompMacro.asm' ; ¬ ªà®áë INCLUDE 'src/bios/shared/CompMacro.asm' ; ¬ ªà®áë
INCLUDE 'Shared_Includes/constants/SP2000.inc' ; ª®­áâ ­âë INCLUDE 'Shared_Includes/constants/SP2000.inc' ; ª®­áâ ­âë