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,28 +927,39 @@ 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
Set_Default_Screen: Set_Default_Screen:
CALL FN_SYNC.INT_DEF ; set default int CALL FN_SYNC.INT_DEF ; set default int
ld a,128+4 ; !HARDCODE ld a,128+4 ; !HARDCODE
;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
; ­  á⥪ ª« ¤ñâáï  ¤à¥á ¢®§¢à â  ¨ ¤ «ìè¥ â é¨âáï ¢á直¬¨ ª®áâë«ï¬¨, ç⮡ ¢¥à­ãâìáï ­ § ¤ PrepareToZX: ; Setup HDD drives for ZX Spectrum mode
CALL Setup_Starter.Exec ; #C000 DI
LD D,CMOS_CELL.TRDOSmount
JP ZX_SPECTRUM_MODE ; ¢ë室 ¢ ०¨¬ zx spectrum 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

@ -100,4 +100,14 @@ CMOS_TEST:
POP DE POP DE
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,11 +4,12 @@
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' ; ª®­áâ ­âë
INCLUDE 'Shared_Includes/constants/zx_char_codes.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 'Shared_Includes/macroses/macros.z80'
INCLUDE 'src/bios/ROM/MEM_MAP.inc' ; ª àâ  ¯ ¬ï⨠INCLUDE 'src/bios/ROM/MEM_MAP.inc' ; ª àâ  ¯ ¬ïâ¨
INCLUDE 'src/bios/shared/VERSION.inc' ; ‚¥àá¨ï EXP ¨ ROM INCLUDE 'src/bios/shared/VERSION.inc' ; ‚¥àá¨ï EXP ¨ ROM