Драйвер для FDD
ZXNet эхоконференция «real.speccy»
От Sergey Selev → Кому All 25.03.2001
Можно ли юзать эту подпрограмму для позиционирования ?
Всмысле не будет ли портиться сектор при записи.
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]
От Kirill Frolov → Кому All 26.03.2001
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
тактов.
Выводы очевидные...
От Sergey Selev → Кому All 27.03.2001
26 марта 2001 Kirill Frolov и Sergey Selev говорили о Драйвер для FDD
KF> Выполнение записи без задержки на тормозных дисководах
KF> приводит к crc error в секторе.
Уже видел, что оно такое.
KF> нормально считать заголовок сектора при диких отклонениях
KF> скорости вращения диска от
KF> номинальной.
У меня 5313 - 288 об/мин, а все остальные - около 300.
ФАПЧ'а нет.
От Kirill Frolov → Кому All 30.03.2001
KF>> скорости вращения диска от номинальной.
SS> У меня 5313 - 288 об/мин, а все остальные - около 300. ФАПЧ'а нет.
288 об/мин. это уже слишком большое отклонение.
SS> У меня инт 23 или 24 такта, не помню. Test 4.30 выводит "Too short".
Hе доверяй ему. Тестом ковалевского проверь.
От Sergey Selev → Кому All 31.03.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]
От Kirill Frolov → Кому All 01.04.2001
SS> Hамыль. Юючь из Ларки, а не каким-нибудь говном, чтобы я потом не
^^^^^^^^^^^^^^^
SS> мучался.
Издеваешься? Хотя... Есть у меня мысль. Сделаю я сегодня из этого г...
ларку 5.0+
От Kirill Frolov → Кому All 01.04.2001
KF>> Hе доверяй ему. Тестом ковалевского проверь.
SS> Hамыль. Юючь из Ларки, а не каким-нибудь говном, чтобы я потом не
SS> мучался.
Вот енкодер запатчил немного. Мне почему-то кажется, что ты будешь
мучаться.
Вообще не должен, но мало-ли... Просто у меня почему-то выходные файлы на 2
символа
всегда длинее чем у Лары. :-/
От Sergey Selev → Кому All 02.04.2001
KF> Имхо 5311 и 5313 рулез форева. Их настроить можно.
Его будет знакомый настраивать. А мне даст свой Teac.
KF> Издеваешься? Хотя... Есть у меня мысль. Сделаю я
2 секции-то ? Hе более 10-ти секунд займет.
KF> сегодня из этого г... ларку 5.0+
Жалко, что мой прикол в zx.talking не получился. :(
От Alexander Groholsky → Кому All 03.04.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
От Kirill Frolov → Кому All 03.04.2001
SS> 2 секции-то ? Hе более 10-ти секунд займет.
Hу да. Только спектрум разобранный валяется и настроенной копии лары тоже
нет.