Форматер на РС

ZXNet эхоконференция «zx.spectrum»

От Vyacheslav Mednonogov Кому All 01.08.1997


Get Msg, All!

Тут возникла простая c виду задача - написать форматер/копировщик
спековских дисков на РС. Всё вроде хорошо, кроме проблемы с заданием плотности
диска перед форматированием. М.Кондратьев предлагает задавать её так:

=== Cut ===

#define DOR 0x3F2 /* disk output reg. */
#define MSR 0x3F4 /* master state reg. */
#define DR 0x3F5 /* data reg. */
#define DIR 0x3F7 /* disk input reg. */
#define CCR 0x3F7 /* data transfer rate */

/скип/

outportb (CCR,0x01);
delay(500);

=== Cut ===

но что-то не очень получается :-( (последующая проверка результата с
помощью FDA выдаёт Density: High)

Может, кто пояснит за что каждый порт отвечает, какие значения допустимы
для этого #3F7 и как они повлияют на скорость передачи данных / скорость
вращения диска? Может, есть стандартный способ (через int #13) - это было бы
ва-аще круто :))

зы\ форматер хотелось бы сделать универсальным - и под 5,25д и под 3,5д.
ззы\ форматер хотелось бы сделать быстрым - кто в курсе, какие значения лучше
всего дать байтикам в базовой таблице дискеты (чей адрес хранится в векторе #1E)
для достижения наибольших скоростей - памажите :))

C горячим приветом, Слава!


От Vyacheslav Mednonogov Кому All 04.08.1997


Get Msg, All!

02 Aug 97 00:04, Vyacheslav Mednonogov сообщил All про {Форматер на РС}:

VM> Тут возникла простая c виду задача - написать форматер/копировщик
VM> спековских дисков на РС. Всё вроде хорошо, кроме проблемы с заданием
VM> плотности диска перед форматированием.

Возможно, нижеследующее кому-нить пригодится.

Оказалось возможным переводить писишные дисководы в режим Double Density /
80 дорожек, не прибегая к непосредственному програмированию контроллера.

Для этого в переменные BIOS-ROM с адресами 490h (для дисковода A) и 491h
(для дисковода B) записывается 55h (если дисковод 5"25/1,2M) или 95h (если
дисковод 3"5/1,44M)
В этом случае оказываются доступными все функции BIOS по Int 13h
(форматирование, чтение, запись, ...). Отлично пашет под Win'95 :))

При использовании дискет 1,44M необходимо заклеить отверстие идентиф.
плотности на них.

C горячим приветом, Слава!

От Michael Kondratyev Кому All 15.08.1997


Hello Vyacheslav!

Sat Aug 02 1997, Vyacheslav Mednonogov состряпал(а) письмо к All:

VM> Может, кто пояснит за что каждый порт отвечает, какие значения
VM> допустимы для этого #3F7 и как они повлияют на скорость передачи данных /
VM> скорость вращения диска? Может, есть стандартный способ (через int #13) -
VM> это было бы ва-аще круто :))

3f7H AT Write: diskette control register
╓7┬6┬5┬4┬3┬2┬1┬0╖
║ │ ║
╙─┴─┴─┴─┴─┴─┴─┴─╜ bit
╚════╦════╝ ╚═╩═ 0-1: data transfer rate
║ 00=500 KBS, 01=300 KBS, 10=250 KBS, 11=res.
╚══════════ 2-7: I can't find anything about these


With best wishes, Michael.