This commit is contained in:
Tolik 2025-05-28 04:10:01 +10:00
parent 8371051031
commit d464c878bb

View File

@ -1825,17 +1825,37 @@ CtrlByte: ; Bytes for IDE.Read.Status
.StreamErrror EQU .Fault
.ATAPI_DMAReady EQU .Fault
.ATAPI_Service EQU .SeekComplete
/*
Bit Abbreviation Function
0 ERR Indicates an error occurred. Send a new command to clear it (or nuke it with a Software Reset).
1 IDX Index. Always set to zero.
2 CORR Corrected data. Always set to zero.
3 DRQ Set when the drive has PIO data to transfer, or is ready to accept PIO data.
4 SRV Overlapped Mode Service Request.
5 DF Drive Fault Error (does not set ERR).
6 RDY Bit is clear when drive is spun down, or after an error. Set otherwise.
7 BSY Indicates the drive is preparing to send/receive data (wait for it to clear). In case of 'hang' (it never clears), do a software reset.
*/
; Bit Abbreviation Function
; 7 BSY Indicates the drive is preparing to send/receive data (wait for it to clear). In case of 'hang' (it never clears), do a software reset.
; 6 RDY Bit is clear when drive is spun down, or after an error. Set otherwise.
; 5 DF Drive Fault Error (does not set ERR).
; 4 SRV Overlapped Mode Service Request.
; 3 DRQ Set when the drive has PIO data to transfer, or is ready to accept PIO data.
; 2 CORR Corrected data. Always set to zero.
; 1 IDX Index. Always set to zero.
; 0 ERR Indicates an error occurred. Send a new command to clear it (or nuke it with a Software Reset).
; device/head register bits
DeviceHeadByte:
.LBA EQU #40
.Slave EQU #10
;
DeviceHeadBit:
.LBA EQU 6 ; LBA = 1
.Slave EQU 4 ; Slave = 1
DeviceControlBit:
.Always_Set EQU 3
.Reset EQU 2 ;SRST
.Int EQU 1 ;nIEN
.AlwaysClear EQU 0
DeviceControlByte:
.setReset EQU #0C ;SRST
.setInt EQU #0A ;nIEN
.resReset EQU #08
.resInt EQU #08
Chanel:
.Set_0: EQU #20BC ; ¤«ï ¨á¯®«ì§®¢ ­¨ï á ¯®«­®©  ¤à¥á æ¨¥© (ॣ BC), § á« âì '1'
.Set_1: EQU #00BC ; ¤«ï ¨á¯®«ì§®¢ ­¨ï á ¯®«­®©  ¤à¥á æ¨¥© (ॣ BC), § á« âì '1'