From 32b684103d43849d765d70601360930c5ba27ee7 Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Thu, 7 Sep 2023 22:28:26 +1000 Subject: [PATCH] new ide detecting procedures --- src/bios/rom/SETUP/AUTOIDE.asm | 48 +++++++++++++++++++++++++--------- 1 file changed, 35 insertions(+), 13 deletions(-) diff --git a/src/bios/rom/SETUP/AUTOIDE.asm b/src/bios/rom/SETUP/AUTOIDE.asm index 9936626..c34b87f 100644 --- a/src/bios/rom/SETUP/AUTOIDE.asm +++ b/src/bios/rom/SETUP/AUTOIDE.asm @@ -137,7 +137,9 @@ SS_SECT EQU #3E ENDM /////////////////////////////////////////////////////////////////////[v] -START: IN A,(SLOT3) +START: CALL SetUP_CHANELS + ; + IN A,(SLOT3) EX AF,AF' LD A,SYS_PAGE OUT (SLOT3),A @@ -379,17 +381,7 @@ IDESPEC: LD (IY+IDE.HDD_INIT_TABLE.DriveType),A CP IDE.Device.CDROM JP Z,.FOR_CDR -; ;Check write caching -; LD A,(TEMP+85*2) ; !TODO сделать через структуру. Включен ли кэш записи? -; AND %0010'0000 -; JR Z,.NoWriteCache -; ;Disable write caching -; LD BC,IDE.Write.Features -; LD A,IDE.ATA.SetFeatures.DisableWriteCache -; OUT (C),A -; LD A,IDE.ATA.SetFeatures -; CALL IDE_CMD -; .NoWriteCache: + ; LD BC,IDE.Read.Control IN A,(C) AND #F0 @@ -721,8 +713,12 @@ DETECTORS: .NOP_Check: LD E,IDE.ATA.Nop LD BC,IDE.Write.Command OUT (C),E - DEC B ; LD BC, IDE.Read.Status + + PAUSE_DJNZ 0 + LD HL,PAUSES.HALT.SMALL + LD BC,IDE.Read.Status + ;DEC B ; .loop: IN A,(C) SCF @@ -821,6 +817,32 @@ DETECTORS: /////////////////////////////////////////////////////////////////////[^] +/////////////////////////////////////////////////////////////////////[v] +SetUP_CHANELS: + LD A,1 + CALL .CMD + LD A,3 + CALL .CMD + LD A,0 + CALL .CMD + LD A,2 +.CMD: CALL SELECT_IDE + LD BC,IDE.Write.Command + LD H,IDE.ATA.Nop + OUT (C),H + PAUSE_DJNZ 32 + ; Disable INTRQ + ; LD BC,IDE.Write.DeviceControl + ; LD A,%0000'0010 + ; OUT (C),A + ; PAUSE_DJNZ 32 + ; ; + ; CALL DisableStandBy + ; PAUSE_DJNZ 32 + RET +/////////////////////////////////////////////////////////////////////[^] + + /////////////////////////////////////////////////////////////////////[v] ; DisableWriteCache: ; LD BC,IDE.Write.Features