Всем доброго дня.
По настоянию нашего товарища John North решил сесть за написание на Спектруме утилит для работы с HDD.
На данный момент на Спектруме с софтом для HDD дела обстоят очень плачевно:
WDC - копировщик, умеет работать только с одним первичным разделом. Такого понятия как "логические диски" на HDD в этой программе просто не существует.
Wild Player - проигрыватель, который умеет работать только с 1 первичным разделом и 1 логическим диском из расширенного раздела.
DNA-OS - умеет работать с 1 первичным разделом и до 4 логических дисков из расширенного раздела.
И ни одной программы, которая бы умела размечать винчестеры на разделы и форматировать диски.
Решился засесть за написание программы, некого подобия Partition Magic на ПЦ.
Что предполагается сделать:
Поддержка до двух винчестеров - Master и Slave с возможностью переключения, с каким винчестером работать.
Поддержка до 10 разделов:
или до 4 первичных разделов,
или до 3 первичных разделов и до 7 логических дисков расширенного раздела (больше не помещается на экране, и вряд ли будет нужно).
Поддержка файловых систем FAT-16 и FAT-32.
Возможность удалять и создавать первичные разделы, расширенный раздел и логические диски в нем.
Возможность быстрого форматирования (без обнуления всех секторов) дисков в файловую систему FAT-16 и FAT-32, с возможностью выбора желаемого размера кластеров (выбор из списка, ограниченным в соответствии с выбранной файловой системой и размером раздела).
При необходимости, можно сделать и полное форматирование, но при размерах дисков 10...80 Гигабайт, на форматирование может уйти время от нескольких дней до несколько недель, т.к. скорость чтения и записи на Спектруме без турбо-режима выходит что-то около 50 Кбайт/сек. Считайте сами. На моём Пентагоне-1024 турбированном на 7 МГц без wait-а скорость выходит ровно в 2 раза выше - около 100 Кбайт/сек.
Будет использоваться адресация LBA. Пока сомневаюсь, нужно ли поддерживать древние винчестеры, которые поддерживают только адресацию CHS.
Чего однозначно НЕ будет в программе:
По этой же причине - не высокой скорости чтения и записи, не будет возможности изменять размеры уже созданных разделов и размеры кластеров, не будет возможности двигать разделы по дисковому пространству HDD. Любая из этих процедур даже на ПЦ выполняется долго, а на Спектруме может выполняться неделями. При этом начатую процедуру прерывать ни в коем случае нельзя, т.к. можно потерять данные.
Что уже сделано:
Программа уже определяет HDD Master и Slave, позволяет выбирать между ними, выводит на экран существующую таблицу разделов с названиями томов, сегодня вечером доделаю вывод и размеров разделов. Позже сделаю и графическое представление разделов, как в Partition Magic на ПЦ.
Пока на данный момент программа распознаёт только файловую систему FAT-32. Позже научу её распознавать и FAT-16.
Пока ничего изменять на жёстком диске нельзя, программа не производит никаких записей на HDD.
Программа работает с жёсткими дисками через контроллер Nemo-IDE.
Теоретически её можно доработать и под SMUC, но за неимением такого контроллера у меня, не будет и возможности проверять её на работоспособность под SMUC. Хотя можно будет попробовать тестировать на Unreal Speccy.
Весь текст выводится на экран в формате 6x8, 42 символа в строке.
При необходимости, процедуру печати смогу легко модернизировать и до формата 4x8, 64 символа в строке.