; LAST UPDATE: 23.02.2023 savelij
 
 
 
; нумерация контроллеров HDD
 
 INIT_VAR
 
 SETVAR HDD_NEMO
 
 SETVAR HDD_SMUC
 
 SETVAR HDD_DIVIDE
 
 SETVAR HDD_PROFI
 
 SETVAR HDD_TURBO2
 
 
 
; порты DIVIDE
 
PV_1F7          EQU 0xBF                        ; регистр состояния/регистр команд
 
PV_1F6          EQU 0xBB                        ; CHS-номер головы и устройства/LBA адрес 24-27
 
PV_1F5          EQU 0xB7                        ; CHS-цилиндр 8-15/LBA адрес 16-23
 
PV_1F4          EQU 0xB3                        ; CHS-цилиндр 0-7/LBA адрес 8-15
 
PV_1F3          EQU 0xAF                        ; CHS-номер сектора/LBA адрес 0-7
 
PV_1F2          EQU 0xAB                        ; счетчик секторов
 
PV_1F1          EQU 0xA7                        ; порт ошибок/свойств
 
PV_1F0          EQU 0xA3                        ; порт данных
 
PV_3F6          EQU 0xE3                        ; регистр состояния/управления
 
PV_HI           EQU 0xA3                        ; старшие 8 бит
 
PRTV_RW         EQU PV_1F0 << 8 + PV_HI         ; порты чтения/записи одним словом
 
 
 
; порты NEMO
 
PN_1F7          EQU 0xF0                        ; регистр состояния/регистр команд
 
PN_1F6          EQU 0xD0                        ; CHS-номер головы и устройства/LBA адрес 24-27
 
PN_1F5          EQU 0xB0                        ; CHS-цилиндр 8-15/LBA адрес 16-23
 
PN_1F4          EQU 0x90                        ; CHS-цилиндр 0-7/LBA адрес 8-15
 
PN_1F3          EQU 0x70                        ; CHS-номер сектора/LBA адрес 0-7
 
PN_1F2          EQU 0x50                        ; счетчик секторов
 
PN_1F1          EQU 0x30                        ; порт ошибок/свойств
 
PN_1F0          EQU 0x10                        ; порт данных
 
PN_3F6          EQU 0xC8                        ; регистр состояния/управления
 
PN_HI           EQU 0x11                        ; старшие 8 бит
 
PRTN_RW         EQU PN_1F0 << 8 + PN_HI         ; порты чтения/записи одним словом
 
 
 
; порты PROFI
 
PP_1F7W         EQU 0x07EB                      ; W регистр команд
 
PP_1F7R         EQU 0x07CB                      ; R регистр состояния
 
PP_1F6W         EQU 0x06EB                      ; W CHS-номер головы и устройства/LBA адрес 24-27
 
PP_1F6R         EQU 0x06CB                      ; R CHS-номер головы и устройства/LBA адрес 24-27
 
PP_1F5W         EQU 0x05EB                      ; W CHS-цилиндр 8-15/LBA адрес 16-23
 
PP_1F5R         EQU 0x05CB                      ; R CHS-цилиндр 8-15/LBA адрес 16-23
 
PP_1F4W         EQU 0x04EB                      ; W CHS-цилиндр 0-7/LBA адрес 8-15
 
PP_1F4R         EQU 0x04CB                      ; R CHS-цилиндр 0-7/LBA адрес 8-15
 
PP_1F3W         EQU 0x03EB                      ; W CHS-номер сектора/LBA адрес 0-7
 
PP_1F3R         EQU 0x03CB                      ; R CHS-номер сектора/LBA адрес 0-7
 
PP_1F2W         EQU 0x02EB                      ; W счетчик секторов
 
PP_1F2R         EQU 0x02CB                      ; R счетчик секторов
 
PP_1F1W         EQU 0x01EB                      ; W порт свойств
 
PP_1F1R         EQU 0x01CB                      ; R порт ошибок
 
PP_1F0W         EQU 0x00EB                      ; W порт данных младшие 8 бит
 
PP_1F0R         EQU 0x00CB                      ; R порт данных младшие 8 бит
 
PP_3F6          EQU 0x06AB                      ; W регистр состояния/управления
 
PP_HIW          EQU 0xFFCB                      ; W порт данных старшие 8 бит
 
PP_HIR          EQU 0xFFEB                      ; R порт данных старшие 8 бит
 
 
 
; порты SMUC
 
PS_1F7_H        EQU 0xFF                        ; регистр состояния/регистр команд
 
PS_1F6_H        EQU 0xFE                        ; CHS-номер головы и устройства/LBA адрес 24-27
 
PS_1F5_H        EQU 0xFD                        ; CHS-цилиндр 8-15/LBA адрес 16-23
 
PS_1F4_H        EQU 0xFC                        ; CHS-цилиндр 0-7/LBA адрес 8-15
 
PS_1F3_H        EQU 0xFB                        ; CHS-номер сектора/LBA адрес 0-7
 
PS_1F2_H        EQU 0xFA                        ; счетчик секторов
 
PS_1F1_H        EQU 0xF9                        ; порт ошибок/свойств
 
PS_1F0_H        EQU 0xF8                        ; порт данных
 
PS_HI_H         EQU 0xD8                        ; старшие 8 бит
 
PS_1F7          EQU 0xFFBE                      ; регистр состояния/регистр команд
 
PS_1F6          EQU 0xFEBE                      ; CHS-номер головы и устройства/LBA адрес 24-27
 
PS_1F5          EQU 0xFDBE                      ; CHS-цилиндр 8-15/LBA адрес 16-23
 
PS_1F4          EQU 0xFCBE                      ; CHS-цилиндр 0-7/LBA адрес 8-15
 
PS_1F3          EQU 0xFBBE                      ; CHS-номер сектора/LBA адрес 0-7
 
PS_1F2          EQU 0xFABE                      ; счетчик секторов
 
PS_1F1          EQU 0xF9BE                      ; порт ошибок/свойств
 
PS_1F0          EQU 0xF8BE                      ; порт данных
 
PS_HI           EQU 0xD8BE                      ; старшие 8 бит
 
PS_PORT_RW      EQU PS_1F0_H << 8 + PS_HI_H     ; порты чтения / записи одним словом
 
PS_LOW_HDDPORT  EQU 0XBE                        ; младший байт адреса SMUC IDE
 
;PS3F6                                          ; регистр состояния/управления
 
;SMUCSYS                EQU 0xFFBA              ; системный порт SMUC
 
;SMUCVER                EQU 0x5FBA              ; порт версии SMUC
 
 
 
; порты ATM TURBO 2+
 
PA_1F7          EQU 0xFEEF                      ; регистр команд
 
PA_1F6          EQU 0xFECF                      ; CHS-номер головы и устройства/LBA адрес 24-27
 
PA_1F5          EQU 0xFEAF                      ; CHS-цилиндр 8-15/LBA адрес 16-23
 
PA_1F4          EQU 0xFE8F                      ; CHS-цилиндр 0-7/LBA адрес 8-15
 
PA_1F3          EQU 0xFE6F                      ; CHS-номер сектора/LBA адрес 0-7
 
PA_1F2          EQU 0xFE4F                      ; счетчик секторов
 
PA_1F1          EQU 0xFE2F                      ; порт свойств
 
PA_1F0          EQU 0xFF0F                      ; порт данных младшие 8 бит
 
;PS3F6                                          ; регистр состояния/управления