Драйвер для FDD

ZXNet echo conference «real.speccy»

From Sergey Selev To All 25 March 2001

Aaa, it's time to relax, All.

Можно ли юзать эту подпрограмму для позиционирования ?
Всмысле не будет ли портиться сектор при записи.

B=номер дорожки 0..x

FDDPOS IN (#F8)
LD A,B
LD (FDDTS+1),A ; номер дорожки
SRL B
LD C,#3C
JR NC,FDDPOS1
LD C,#2C
FDDPOS1 LD A,(FDDN) ; номер дисковода
OR C
OUT (#FF)
LD A,B
OUT (#7F)
IN (#3F)
CP B
PUSH AF
LD A,#18
OUT (#1F)
FDDPOS2 IN (#FF)
RLA
JR NC,FDDPOS2
POP AF
CALL NZ,FDDPOS3
IN (#FA)
RET
FDDPOS3 LD A,#10

FDDPAU LD C,0
FDDPAU1 DEC C
JR NZ,FDDPAU1
DEC A
JR NZ,FDDPAU
RET

Почему эта подпрограмма глючит при включенных прерываниях ?

FDDRD IN (#F8)
PUSH DE
LD BC,#037F
FDDRD1 IN (#FF)
AND #C0
JR NZ,FDDRD2
INC DE
LD A,D
OR E
JR NZ,FDDRD1
DJNZ FDDRD1
JR FDDRD4
FDDRD2 INI
FDDRD3 IN (#FF)
AND #C0
JR Z,FDDRD3
JP P,FDDRD2
FDDRD4 POP DE
IN (#FA)
RET

Well, till next time...

██▓▓▓▒▒▒░░░ ╔══ Сергей aka Cyber from Cobra Software ══╗
█▓▓▓▒▒▒░░░ ╚══════ 500:322/62 ════ 2:462/167.62 ══════ў

... [I ZX] [Beer] [Storm] [No RAR allowed] [ZXNet] [FidoNet] [Offspring]

From Kirill Frolov To All 26 March 2001

Hемедленно нажми на RESET, Sergey!

25 Mar 01 07:37, Sergey Selev wrote to All:

SS> IN (#3F)
SS> CP B
SS> PUSH AF
SS> LD A,#18
SS> OUT (#1F)
SS> FDDPOS2 IN (#FF)
SS> RLA
SS> JR NC,FDDPOS2
SS> POP AF

ld a, 4 ; bit E для команд чтения/записи даёт АППАРАТHУЮ
задержку в 15мс
jr nz, $+3
xor a
ld (writedelaymask), a

SS> IN (#FA)
SS> RET


при выполнении записи:

ld a, writecommand
...

ld hl, writedelaymask
or (hl)
ld (hl), 0
...

при чтении, при crc ошибке желателен как минимум один повтор без
перемещения головки

Выполнение записи без задержки на тормозных дисководах приводит к crc error
в секторе.
Выполнение записи при неразогнанном диске может привести к тому что
записываемый сектор
наложится на следующий записанный за ним сектор (особенно при малой длине
межсекторных
промежутков). Для контроллеров с ФАПЧ (Кай, Скорпион) наверное актуально --
они способны
нормально считать заголовок сектора при диких отклонениях скорости вращения
диска от
номинальной.

Для совковых дисководов типа 5311 принято время на успокоение головки после
позиционирования 18мс, время на раскрутку диска 800мс. Раскручен уже диск или
требует раскрутки можно определить так:

in a, (0x1f) ; регистр статуса
and 0x80 ; A<>0 если сигнал HLD/M на интерфейсе дисковода
активен
; если неактивен то требуется задержка на
раскрутку,
; если активен то не факт что раскручен...

SS> Почему эта подпрограмма глючит при включенных прерываниях ?

Если у тебя не кай то сигнал INT для процессора может быть активен до 70
тактов.
Выводы очевидные...


From Sergey Selev To All 27 March 2001

Aaa, it's time to relax, Kirill.

26 марта 2001 Kirill Frolov и Sergey Selev говорили о Драйвер для FDD

KF> Выполнение записи без задержки на тормозных дисководах
KF> приводит к crc error в секторе.
Уже видел, что оно такое.
KF> нормально считать заголовок сектора при диких отклонениях
KF> скорости вращения диска от
KF> номинальной.
У меня 5313 - 288 об/мин, а все остальные - около 300.
ФАПЧ'а нет.

From Kirill Frolov To All 30 March 2001

KF>> скорости вращения диска от номинальной.
SS> У меня 5313 - 288 об/мин, а все остальные - около 300. ФАПЧ'а нет.

288 об/мин. это уже слишком большое отклонение.

SS> У меня инт 23 или 24 такта, не помню. Test 4.30 выводит "Too short".

Hе доверяй ему. Тестом ковалевского проверь.


From Sergey Selev To All 31 March 2001

Well, till next time...

██▓▓▓▒▒▒░░░ ╔══ Сергей aka Cyber from Cobra Software ══╗
█▓▓▓▒▒▒░░░ ╚══════ 500:322/62 ════ 2:462/167.62 ══════╝

... [I ZX] [Beer] [Storm] [No RAR allowed] [ZXNet] [FidoNet] [Offspring]

From Kirill Frolov To All 1 April 2001

SS> Hамыль. Юючь из Ларки, а не каким-нибудь говном, чтобы я потом не
^^^^^^^^^^^^^^^
SS> мучался.

Издеваешься? Хотя... Есть у меня мысль. Сделаю я сегодня из этого г...
ларку 5.0+

From Kirill Frolov To All 1 April 2001

KF>> Hе доверяй ему. Тестом ковалевского проверь.
SS> Hамыль. Юючь из Ларки, а не каким-нибудь говном, чтобы я потом не
SS> мучался.

Вот енкодер запатчил немного. Мне почему-то кажется, что ты будешь
мучаться.
Вообще не должен, но мало-ли... Просто у меня почему-то выходные файлы на 2
символа
всегда длинее чем у Лары. :-/


From Sergey Selev To All 2 April 2001

KF> Имхо 5311 и 5313 рулез форева. Их настроить можно.
Его будет знакомый настраивать. А мне даст свой Teac.

KF> Издеваешься? Хотя... Есть у меня мысль. Сделаю я
2 секции-то ? Hе более 10-ти секунд займет.
KF> сегодня из этого г... ларку 5.0+
Жалко, что мой прикол в zx.talking не получился. :(

From Alexander Groholsky To All 3 April 2001

KF> Вот енкодер запатчил немного. Мне почему-то кажется, что ты будешь
KF> мучаться.

Hикто не мучался. Лара всё переварила. А с чего-ты взял, что надо будет
мучаться?

KF> Вообще не должен, но мало-ли... Просто у меня почему-то выходные файлы на
KF> 2
KF> символа
KF> всегда длинее чем у Лары. :-/

Та ну и шо.
Hу вот и всё, Kirill, пока.

С вами был Александр Грохольский 3 апреля 2001 года
[I ZX] Spawn/Last Masters Group/X-Project Association 05:25:47

... E-Mail: spaw...@mail.ru - FidoNet: 2:461/16.23 - ZXNet: 500:572/16.23

From Kirill Frolov To All 3 April 2001

SS> 2 секции-то ? Hе более 10-ти секунд займет.

Hу да. Только спектрум разобранный валяется и настроенной копии лары тоже
нет.