...
This commit is contained in:
parent
7fc7fe3490
commit
1f3a3f2192
@ -1 +1 @@
|
||||
Subproject commit dd98f391c99f3ff16920ca176349cff874ad9b23
|
||||
Subproject commit 2facbb273ecfd873a5bb622c8c405cc9880a39e5
|
||||
@ -292,7 +292,7 @@ RDS000: CALL SELECTH
|
||||
LD XL,0
|
||||
LD XH,A
|
||||
LD BC,IDE.Write.Command
|
||||
LD A,ATA_READ_SECTORS ; WITH RETRY
|
||||
LD A,IDE.ATA.ReadSectorsWithRetry
|
||||
OUT (C),A
|
||||
;?????
|
||||
;SAVE HL!
|
||||
@ -473,7 +473,7 @@ NO_WriteProtect:
|
||||
LD XL,0
|
||||
LD XH,A
|
||||
LD BC,IDE.Write.Command
|
||||
LD A,ATA_WRITE_SECTORS ; WITH RETRY
|
||||
LD A,IDE.ATA.WriteSectorsWithRetry
|
||||
OUT (C),A
|
||||
;SAVE HL!
|
||||
WRS002: EXX
|
||||
@ -570,7 +570,7 @@ VRS000: CALL SELECTH
|
||||
CALL PRESET
|
||||
POP HL
|
||||
LD BC,IDE.Write.Command
|
||||
LD A,ATA_READ_VERIFY_SECTORS ; WITH RETRY
|
||||
LD A,IDE.ATA.ReadVerifySectorsWithRetry
|
||||
OUT (C),A
|
||||
VRS002: LD BC,IDE.Read.Status
|
||||
IN A,(C)
|
||||
|
||||
@ -169,7 +169,7 @@ FN_HDD_PREPARE: ;
|
||||
|
||||
.SetCommand:
|
||||
LD BC,IDE.Write.Command
|
||||
LD A,ATA_READ_SECTORS
|
||||
LD A,IDE.ATA.ReadSectorsWithRetry
|
||||
; OUT (C),A
|
||||
AND A
|
||||
RET
|
||||
@ -220,7 +220,7 @@ HD_RD_L1:
|
||||
SAFE_PORTY
|
||||
|
||||
LD BC,IDE.Write.Command
|
||||
LD A,ATA_READ_SECTORS
|
||||
LD A,IDE.ATA.ReadSectorsWithRetry
|
||||
OUT (C),A
|
||||
HD_RD_L2:
|
||||
|
||||
@ -293,7 +293,7 @@ FN_HDD_WRITE:
|
||||
EX AF,AF'
|
||||
|
||||
LD BC,IDE.Write.Command
|
||||
LD A,ATA_WRITE_SECTORS
|
||||
LD A,IDE.ATA.WriteSectorsWithRetry
|
||||
OUT (C),A
|
||||
|
||||
HD_WR_L2:
|
||||
@ -331,7 +331,7 @@ FN_HDD_RECAL:
|
||||
LD A,#A0
|
||||
LD BC,IDE.Write.DriveCtrl
|
||||
OUT (C),A
|
||||
LD A,ATA_EXECUTE_DEVICE_DIAGNOSTIC
|
||||
LD A,IDE.ATA.ExecuteDeviceDiagnostic
|
||||
CALL HD_CMD_EXE
|
||||
AND A
|
||||
BIT IDE.ControlBit.Error,A
|
||||
@ -451,7 +451,7 @@ HD_C0_L3:
|
||||
WAIT_HDD
|
||||
|
||||
LD BC,IDE.Write.Command
|
||||
LD A,ATA_IDENTIFY_DEVICE
|
||||
LD A,IDE.ATA.IdentifyDevice
|
||||
OUT (C),A
|
||||
|
||||
WAIT_HDD
|
||||
@ -519,7 +519,7 @@ HD_C0_NO_LBA:
|
||||
LD A,D
|
||||
OUT (SLOT3),A
|
||||
|
||||
LD A,ATA_INITIALIZE_DEVICE_PARAMETERS ; SET HDD PARAMETERS
|
||||
LD A,IDE.ATA.InitializeDeviceParameters ; SET HDD PARAMETERS
|
||||
CALL HD_CMD_EXE
|
||||
RET
|
||||
|
||||
|
||||
@ -105,17 +105,17 @@ CDAUTO:
|
||||
|
||||
SELECT_IDE:
|
||||
AND A ;%0000'0011
|
||||
LD D,IDE.ATA.Master
|
||||
LD D,IDE.Drive.Master
|
||||
JR Z,.AUTO_0
|
||||
DEC A
|
||||
LD D,#B0
|
||||
JR Z,.AUTO_0
|
||||
DEC A
|
||||
;R00
|
||||
LD D,IDE.ATA.Master
|
||||
LD D,IDE.Drive.Master
|
||||
JR Z,.AUTO_1
|
||||
DEC A
|
||||
LD D,IDE.ATA.Slave
|
||||
LD D,IDE.Drive.Slave
|
||||
.AUTO_1: LD A,IDE.Chanel.Secondary ;SELECT SECONDARY
|
||||
OUT (IDE.Chanel.Set),A
|
||||
;LD A,1
|
||||
@ -134,7 +134,6 @@ SELECT_IDE:
|
||||
|
||||
IDEAUTO:
|
||||
CALL SELECT_IDE
|
||||
;MASTER
|
||||
LD A,IDE.Device.NONE
|
||||
LD (IDEDEV),A
|
||||
CDMASTR:
|
||||
@ -192,7 +191,7 @@ NO_BUSY:
|
||||
JR NZ,.check_next
|
||||
;JP NZ,DETECT_ATA_ATAPI
|
||||
;
|
||||
|
||||
/*
|
||||
DETECT_ATA_ATAPI: ;R02
|
||||
; 1. Set the Sectorcount, LBAlo, LBAmid, and LBAhi IO ports to 0 (port 0x1F2 to 0x1F5).
|
||||
LD BC,IDE.Write.Counter
|
||||
@ -206,13 +205,13 @@ DETECT_ATA_ATAPI: ;R02
|
||||
;
|
||||
; 2. Send the IDENTIFY command (0xEC) to the Command IO port (0x1F7).
|
||||
LD BC,IDE.Write.Command
|
||||
LD E,ATA_IDENTIFY_DEVICE
|
||||
LD E,IDE.ATA.IdentifyDevice
|
||||
OUT (C),E
|
||||
;
|
||||
; 3. Read the Status port (0x1F7) again.
|
||||
; 3.1 If the value read is 0, the drive does not exist.
|
||||
LD B,0
|
||||
.pause: DJNZ .pause
|
||||
; 3.1 If the value read is 0, the drive does not exist.
|
||||
LD BC,IDE.Read.Status
|
||||
IN A,(C)
|
||||
JP Z,ABSENT
|
||||
@ -228,13 +227,12 @@ DETECT_ATA_ATAPI: ;R02
|
||||
INC C ;IDE.Read.CylinderHigh
|
||||
IN B,(C)
|
||||
OR B
|
||||
|
||||
JP NZ,NOHDD ; IT IS ATAPI
|
||||
JP NZ,Non_ATA ; IT IS ATAPI
|
||||
; 3.5 Otherwise, continue polling one of the Status ports until bit 3 (DRQ, value = 8) sets, or until bit 0 (ERR, value = 1) sets.
|
||||
LD HL,WAIT_SML
|
||||
LD DE,#0101 ;!FIXIT
|
||||
LD DE,#0908
|
||||
CALL WAIT_PRT
|
||||
JP NC,ABSENT
|
||||
JP C,ABSENT
|
||||
;
|
||||
; 4. At that point, if ERR is clear, the data is ready to read from the Data port (0x1F0). Read 256 16-bit values, and store them.
|
||||
LD A,IDE.Device.HDD
|
||||
@ -242,15 +240,16 @@ DETECT_ATA_ATAPI: ;R02
|
||||
JP GETPARM
|
||||
;
|
||||
;;;;;;;;;;;;;;;;;;;;;;; R02
|
||||
*/
|
||||
|
||||
|
||||
NO_BUSY.check_next:
|
||||
CP IDE.Device.CDROM
|
||||
JP Z,NOHDD
|
||||
JP Z,Non_ATA
|
||||
|
||||
;!TODO ¯à¨¡à âìáï âãâ. <20>®á«¥ R02 âãâ ¬®¦® ã¡à âì ¬®£® «¨è¥£®
|
||||
;-=-=-==-=-=-=-=-=-=-==-=-=-=-=-=-=-==-=-=-=-=-=-=-==-=-=-=-=-=-=-==-=-=;
|
||||
LD E,ATA_NOP
|
||||
LD E,IDE.ATA.Nop
|
||||
LD BC,IDE.Write.Command
|
||||
OUT (C),E
|
||||
DEC B ; LD BC, IDE.Read.Status
|
||||
@ -273,7 +272,7 @@ WXREADY:
|
||||
|
||||
LD A,IDE.Device.HDD
|
||||
LD (IDEDEV),A
|
||||
LD E,ATA_IDENTIFY_DEVICE
|
||||
LD E,IDE.ATA.IdentifyDevice
|
||||
LD BC,IDE.Write.Command
|
||||
OUT (C),E
|
||||
|
||||
@ -283,7 +282,7 @@ WXREADY:
|
||||
LD HL,WAIT_SML
|
||||
LD DE,#0101
|
||||
CALL WAIT_PRT
|
||||
JP NC,NOHDD
|
||||
JP NC,Non_ATA
|
||||
;-=-=-==-=-=-=-=-=-=-==-=-=-=-=-=-=-==-=-=-=-=-=-=-==-=-=-=-=-=-=-==-=-=;
|
||||
GETPARM:
|
||||
LD HL,WAIT_IDE
|
||||
@ -299,7 +298,7 @@ GETPARM:
|
||||
AND A
|
||||
RET
|
||||
|
||||
NOHDD: LD A,IDE.Device.CDROM
|
||||
Non_ATA: LD A,IDE.Device.CDROM
|
||||
LD (IDEDEV),A
|
||||
LD E,#A1 ;!HARDCODE IDENTIFY ATAPI
|
||||
LD BC,IDE.Write.Command
|
||||
@ -313,8 +312,7 @@ NOHDD: LD A,IDE.Device.CDROM
|
||||
LD DE,#0101
|
||||
CALL WAIT_PRT
|
||||
JP C,GETPARM
|
||||
ABSENT:
|
||||
SCF
|
||||
ABSENT: SCF
|
||||
RET
|
||||
|
||||
IDESPEC:
|
||||
@ -358,7 +356,7 @@ NONLBA: LD A,B
|
||||
LD BC,IDE.Write.Counter
|
||||
ENDIF
|
||||
OUT (C),A
|
||||
LD A,ATA_INITIALIZE_DEVICE_PARAMETERS
|
||||
LD A,IDE.ATA.InitializeDeviceParameters
|
||||
CALL IDE_CMD
|
||||
; RET C
|
||||
LD C,(IY+IDE.HDD_INIT_TABLE.SectorsPerTrack) ; Sector per track
|
||||
@ -417,26 +415,27 @@ WTREADY:
|
||||
JR NZ,WTREADY
|
||||
SCF
|
||||
RET
|
||||
|
||||
; D - MASK
|
||||
; E - PATTERN
|
||||
; BC - PORT
|
||||
; IN:
|
||||
; HL - Waiting delay
|
||||
; DE - MASK : PATTERN
|
||||
; OUT:
|
||||
; NC: (PORT & D)-E = 0
|
||||
; CF: waiting delay exceeded
|
||||
WAIT_PRT:
|
||||
LD BC,IDE.Read.Status
|
||||
;
|
||||
.loop: IN A,(C)
|
||||
AND D
|
||||
CP E
|
||||
;JR NZ,.P2
|
||||
;AND A
|
||||
;RET
|
||||
RET Z
|
||||
.P2: DEC HL
|
||||
DEC HL
|
||||
CALL SKIPKEY
|
||||
RET C
|
||||
LD A,L
|
||||
OR H
|
||||
JP NZ,.loop
|
||||
.error: SCF
|
||||
;
|
||||
SCF
|
||||
RET
|
||||
|
||||
SKIPKEY:
|
||||
|
||||
@ -633,7 +633,8 @@ CHEKOK: ;CALL ScreenPOS.GET_CUR
|
||||
CALL CMOS_TEST
|
||||
|
||||
LD A,msgStrings.cmosNone
|
||||
JR C,NOCMOS
|
||||
JR C,CMOS_ABSENT
|
||||
; CMOS OK
|
||||
CALL CMOSINIT
|
||||
LD A,msgStrings.cmosFound
|
||||
CALL POSTMSG
|
||||
@ -644,11 +645,10 @@ CHEKOK: ;CALL ScreenPOS.GET_CUR
|
||||
LD HL,RebootDate
|
||||
CALL PRNTIME
|
||||
CALL ScreenPOS.CRLF
|
||||
JR NOCMOS2
|
||||
|
||||
NOCMOS:
|
||||
JR INFO_MESSAGE
|
||||
CMOS_ABSENT:
|
||||
CALL POSTMSG
|
||||
NOCMOS2: ;!FIXIT §¢ ¨¥ ¥¯à ¢¨«ì®¥
|
||||
INFO_MESSAGE: ;!FIXIT §¢ ¨¥ ¥¯à ¢¨«ì®¥
|
||||
LD DE,#0528
|
||||
;CALL ScreenPOS.LOCAT
|
||||
CALL LP_SET_PLACE
|
||||
@ -723,10 +723,7 @@ TSETUP:
|
||||
JR NZ,TSETUP
|
||||
POP HL
|
||||
JP EXIT_SETUP
|
||||
CSETUP:
|
||||
; POP HL
|
||||
;------------test ; !!!!! ¯®á¬®âà¥âì
|
||||
XOR A
|
||||
CSETUP: XOR A
|
||||
LD (ITEM_Restore),A
|
||||
CALL SETTINGS
|
||||
XOR A
|
||||
@ -1103,7 +1100,7 @@ AUTODET:
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT3),A
|
||||
LD HL,IDE.INIT_TBL_IDE0
|
||||
LD BC,#20FF ;R02 ;!HARDCODE table
|
||||
LD BC,256*(IDE.HDD_INIT_TABLE * 4) + #FF ;R02
|
||||
FILLIDE:
|
||||
LD (HL),C ;CLEAR HDD VARIABLE
|
||||
INC HL
|
||||
@ -1111,7 +1108,7 @@ FILLIDE:
|
||||
EX AF,AF'
|
||||
OUT (SLOT3),A
|
||||
|
||||
;==== ;!!!!! áâ à ï ã¬¥à æ¨ï ¤¨áª®¢ !!!!!====
|
||||
;======== áâ à ï ã¬¥à æ¨ï ¤¨áª®¢! ========
|
||||
; CALL GET_AVAILABLE_STRUCT
|
||||
; LD A,#00
|
||||
; CALL COMMONIDE
|
||||
@ -1148,7 +1145,7 @@ FILLIDE:
|
||||
CALL ScreenPOS.CRLF
|
||||
RET
|
||||
;
|
||||
;==== ;!!!!! áâ à ï ã¬¥à æ¨ï ¤¨áª®¢ !!!!!====
|
||||
;======== áâ à ï ã¬¥à æ¨ï ¤¨áª®¢! ========
|
||||
;GET_AVAILABLE_STRUCT
|
||||
;LD C,SLOT3
|
||||
;IN B,(C)
|
||||
@ -1157,7 +1154,6 @@ FILLIDE:
|
||||
;CALL FIND_AVAILABLE_STRUCT
|
||||
;OUT (C),B
|
||||
;RET
|
||||
|
||||
;FIND_AVAILABLE_STRUCT
|
||||
;LD IY,IDE0
|
||||
;LD A,(IY+DTYPE_H)
|
||||
@ -1176,7 +1172,7 @@ FILLIDE:
|
||||
;INC A
|
||||
;RET
|
||||
;==========================================
|
||||
;
|
||||
|
||||
|
||||
; !HARDCODE § ¬¥¨âì ç¨á« ¬¥âª¨ ¢ í⮩ ¯à®æ¥¤ãà¥
|
||||
COMMONIDE:
|
||||
@ -1204,9 +1200,8 @@ COMMONIDE:
|
||||
|
||||
;0 - AUTODETECT
|
||||
;1 - GETTING FROM SETUP
|
||||
;2 - CD-ROM
|
||||
;2 - CD-ROM (ATAPI device)
|
||||
;3 - DISABLED
|
||||
|
||||
COMMON2:
|
||||
CALL G_VALUE
|
||||
OR A
|
||||
@ -1764,20 +1759,19 @@ POSTMSC:
|
||||
LD A,E
|
||||
JP CPRINTZ
|
||||
|
||||
;
|
||||
SETLAND:
|
||||
LD A,#0E ; !HARDCODE CMOS ï祩ª options
|
||||
CALL READCMS
|
||||
AND #04 ; !HARDCODE CMOS § 票¥ ï§ëª
|
||||
JR NZ,.RUS
|
||||
|
||||
;
|
||||
LD HL,MSG_ENG
|
||||
LD DE,memBUFFER.Messages
|
||||
LD BC,MSG_ENG.size
|
||||
LDIR
|
||||
RET
|
||||
.RUS:
|
||||
LD HL,MSG_RUS
|
||||
;
|
||||
.RUS: LD HL,MSG_RUS
|
||||
LD DE,memBUFFER.Messages
|
||||
LD BC,MSG_RUS.size
|
||||
LDIR
|
||||
|
||||
@ -13,6 +13,5 @@
|
||||
INCLUDE 'src/bios/shared/VERSION.inc' ; ‚¥àá¨ï EXP ¨ ROM
|
||||
INCLUDE 'Shared_Includes/constants/BIOS_EQU.inc'
|
||||
INCLUDE 'src/bios/ROM/BIOS.inc'
|
||||
INCLUDE 'Shared_Includes/constants/ata.inc'
|
||||
;---------------------------------------
|
||||
;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user