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
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
;***********************************
; ˆ­¨æ¨ «¨§ æ¨ï ¯®à⮢

View File

@ -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

View File

@ -100,4 +100,14 @@ CMOS_TEST:
POP DE
POP AF
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
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