Rambler's Top100

Программа для записи дискет by a via Felix!

=== Описание === Программа предназначена для записи дискет из файлов. Также может сохранять содержимое дискет в файлы. На данном этапе программа вполне хорошо работает, то есть умеет верно записывать файл в нужное место дискеты. ;) Вам всего лишь необходимо в специальном файле указать, что ей нужно делать. К сожалению, сейчас не предусмотрена возможность использования нескольких файлов с описаниями. Вы можете контролировать действия программы по файлу логов, который она создаёт в процессе работы. Записи в файл логов (DIWR.LOG) с течением времени добавляются, поэтому он может вырасти до больших размеров. Вы его можете удалить, он будет создаваться автоматически. Если вы не хотите, чтобы программа писала отчёт в лог-файл, то можете отключить эту возможность двумя способами: 1) запустить программу с ключом NOLOG, например: DIWR.EXE /NOLOG или DIWR.EXE -NOLOG 2) изменить файл конфигурации DIWR.CFG. Это, так сказать, для опытных пользователей :). Например, с помощью программы HIEW. За возможность ведения логов отвечает последний байт. если он не равен 0, то логи ведутся, если он ноль - то не ведутся. В этом случае, если вам вдруг нужно, чтобы программа записала лог (проконтролировать её), то для этого имеется специальный ключ: DIWR.EXE -LOGON или же DIWR.EXE /LOGON В файле лога всегда указываются ошибки, если они произошли во время обработки коммандного файла st.ds. В данной версии программы файл конфигурации не изменяется самой программой. === Как работать с программой? === На мой взгляд, освоить программу достаточно просто. То, что вы хотите, чтобы выполнила программа, записываете в файл st.ds в определённом виде. ВЫ МОЖЕТЕ: 1. Комментировать строки. Для этого в самом начале строки нужно поставить знак комментария: // Это комментарий // или так: \\ Это тоже считается комментарием. \\ Так-то вот! :) 2. В остальных случаях формат строки с командой должен обязательно иметь следующий вид (иначе при обработке строки возникнет ошибка и она не будет считаться): [*] На первом месте должна стоять буква-действие, безразлично к регистру: "w" или "r", или знак, означающий добавление ("+"), но только после верной строки с начальными "W" или "R". "W" означает, что Вы хотите записать на дискету что-то из файла, а "R" - что вы хотите сохранить в файл что-то с дискеты. [*] Затем, после "W" или "R" (но не после "+"!), должно стоять имя файла в квадратных скобках "[]". Пустые скобки, знак вопроса в них или неверное имя файла приведут к тому, что программа в процессе записи на дискету спросит у Вас верное имя файла. Вы можете оставить пустое поле и нажать "Enter", тогда программа завершит свою работу. %%% Примеры: w[file1.txt] - запись дискеты, данные будут браться из файла file1.txt R[file.tmp] - данные с дискеты будут сохраняться в файле file.tmp W[] - имя файла будет запрашиваться. r[?] - имя файла также будет запрашиваться. +[filename.xxl] - НЕВЕРНАЯ ЗАПИСЬ! [*] Затем идёт описание, с какими головками (англ. head: H), цилиндрами (дорожками, C) и секторами (sector, S) нужно работать. Оно состоит в следующем: пишется нужное имя-идентификатор (H, C или S), а за ним, в фигурных скобках, указывается номер головки, дорожки или сектора: w[]H{0}C{0}S{1} - правильная запись, записываться будет первый сектор, причём //будут записаны первые 512 байт из файла Если файл будет меньшего размера (или остаток файла), то файл запишется в начало сектора, а остальная часть сектора не изменится. Это очень удобно, по-моему. :) [*] Вы можете указывать диапазоны изменения номеров либо через запятую, либо через тире, причём может быть сколько угодно пробелов ВНУТРИ (!) фигурных скобок: // К примеру: R[file.dst]H{0, 1}C{0 - 79}S{1, 2, 3, 4 , 5, 6 , 7, 8, 9-10, 11-15, 16-18} ВНИМАНИЕ! Для стандартных дискет параметры могут меняться следующим образом: H = 0, 1 C = 0 - 79 S = 1 - 18 Если номера головок будут вне диапазона [0, 1] или номер сектора будет 0 (ноль), то при обработке строки возникнет ошибка и она будет пропущена. Все остальные значения допустимы (например, для нестандартно отформатированных дискет), но правильности работы программы не гарантирую. Допустим любой порядок диапазонов: - можно так: 1, 2, 3-5, 7 - или так: 7, 3-5, 1 - так: 9-4, 6, 7, 6, 5, 1, 10-9, 2-5 - или даже так: 1-11, 79-35, 33, 20, 15-12, 1, 1, 1, 1, 6 [*] При задании параметров ОЧЕНЬ ВАЖЕН порядок следования идентификаторов, к примеру, следующие две записи будут интерпретироваться различным образом: w[file.img]H{0, 1}C{0-79}S{1-18} - будет сделана запись всей дискеты. w[file.img]C{0-79}H{0, 1}S{1-18} - также будет сделана запись дискеты, но иначе //чем в предыдущей команде. Порядок записи идентификаторов отвечает порядку записи на дискету. Так, в первой команде, приведённой выше, запись будет сделана следующим образом: H C S 0 0 1 0 0 2 ... 0 0 18 0 1 1 0 1 2 ... 0 2 1 ... 0 3 1 ... ... ... 1 79 17 1 79 18 А вторая будет интерпретирована по-другому: H C C 0 0 1 0 0 2 ... 0 0 18 1 0 1 1 0 2 ... 1 0 18 0 1 1 ... 1 1 1 ... 0 2 1 ... 1 3 1 ... ... ... 1 79 18 То есть в первом случае при фиксированных H и C меняется S, после того, как все значения S пробегает, меняется С, а уже после всего меняется H. Во втором случае опять меняется S, но после того, как записаны все секторы (1-18), изменится H. И уже в последнюю очередь будет изменяться C. Этот случай соответствует стандарту образов дискет IMG. Чуть ниже есть более понятные примеры. Если вы хотите продолжать с предыдущим файлом, а записывать/читать дискету хотите другим способом, то в этом случае Вам пригодится команда добавления "+". При использовании этой команды позиция чтения/записи в обрабатываемом файле не изменится. Примеры: r[file.tmp]S{2-4}H{1, 0}C{5, 14} +H{1}C{8-10}S{3} +C{1, 2-3, 5}S{12-10, 6-5}H{0} В этом случае сначала выполнится запись в файл с указанных в первой команде секторов, затем в файл будет добавлены данные работы второй команды, а затем третьей. В противном случае (если указать три команды r[file]), то файл file.tmp будет только перезаписываться, и данные работы предыдущих команд будут потеряны. В конце оформленных по всем правилам строк допускаются комментарии (без знака комментария). Расмотрим на более ясном примере различие действий программы при разном порядке идентификаторов H, C и S. Возьмём случай команды r[file.tmp]S{2-4}H{1, 0}C{5, 14} Проследим её работу: H C S 1 5 2 1 14 2 0 5 2 0 14 2 1 5 3 1 14 3 0 5 3 0 14 3 1 5 4 1 14 4 0 5 4 0 14 4 Как видно из примера, в этом случае сначала меняются все цилиндры, только потом головки и, в последнюю очередь, сектора. То есть записываются все вторые секторы, затем все третие, а потом четвёртые. Если команду записать так: r[file.tmp]H{1, 0}C{5, 14}S{2-4} то запись в файл уже будет происходить в другой последовательности: H C S 1 5 2 1 5 3 1 5 4 1 14 2 1 14 3 1 14 4 0 5 2 0 5 3 0 5 4 0 14 2 0 14 3 0 14 4 Здесь в последнюю очередь меняются номера головок. И, наконец, последний пример: r[file.tmp]C{5, 14}S{2-4}H{1, 0} H C S 1 5 2 0 5 2 1 5 3 0 5 3 1 5 4 0 5 4 1 14 2 0 14 2 1 14 3 0 14 3 1 14 4 0 14 4 Надеюсь, что Вам было понятно и вы разобрались, как работать с программой (поверьте, это просто, только попробуйте несколько раз)! Желаю Вам успешной работы! Обо всех ошибках, недочётах, со своими предложениями обращайтесь ко мне. a via Felix! 8-9 июня 2005 года. К одной из первых версий программы.

Гостевая книга
Вернуться
На начало

Rambler's
Top100