FromNet: NET_Moscow_Russia_(245_02/09/2005) (commserv.rpb.ru)
Здравствуй, Dima!
Чтв, 27 Окт 05 в 01:16, Dima Bystrov -> Kirill Frolov:
Hаверное #10 - рекалибровка. Винт по-немовски и инициализирую так. Взято кстати из леонтьевских драйверов:Какой код этой команды, которую ты имеешь в виду?
LD A,(CURDRV) ;master or slave
OUT (#D0),A
LD A,#0C
OUT (#C8),A
LD B,#00
1$ DJNZ 1$ ;пауза
LD A,#08
OUT (#C8),A ;собсно, здесь винт уже проинитился
2$ IN A,(#F0) ;ждем снятия BSY
RLCA
JR C,2$
LD A,#10
OUT (#F0),A ;команда "рекалибровка"
EI
__WAIT CALL BRKTST ;проверка на BREAK
RET C
IN A,(#F0)
BIT 7,A
JR NZ,__WAIT ;ждем исполнения
CP #50 ;винт в порядке?
RET Z
JR SRESET
Скорповый теневик инициализирует винт так:
;soft reset routine.
PUSH BC
LD BC,#FFBA ;SMUC control register
LD A,(LDFF0)
PUSH AF
OR #80
OUT (C),A ;сменили рег. набор.
PUSH BC
LD BC,#FEBE ;рег. упр. состоянием (DCR)
LD A,#C
OUT (C),A
CALL PAUSE
XOR A
OUT (C),A
POP BC
POP AF
AND #7F
OUT (C),A ;вернули рег. набор
LD (LDFF0),A
POP BC
POP AF
RET
LDFF0 DEFB #77
M1 DJNZ M1
POP BC
RET
Как видишь - практически одно и тоже. Установить 2-й бит в DCR, подождать, сбросить его, вот и вся инициализация.
WBR, Jason.
_/(ZX)/_ /*e-mail: jason2000(не кошка)yandex.ru ICQ: 62235830*/
/np:/ *silence*




Ответить с цитированием