А зачем? Наколько я понимаю, цели этой программы несколько иные: диагностика и мелкий программный ремонт. Прога идет в элементе на 486. Смысл её утяжелять алгоритмом, потребующем больших мощностей и раздувающем её размер? И т. д. и т. п.
К примеру возможность запуска батч-файлов - действительно рулёз, который уже по достоинству оценен.
Ты там поосторожнее с батч-файлами .
я тут пронаблюдал ситуацию одну... плохо стало .
Но подобные ситуации могут возникнуть только если используются внешние IDE контроллеры.
на счет батч-файлаов
ох, если бы можно было писать в них прям открытым текстом, например:
DRV_out 177:FF,00,FF etc
DRV_wait1000 'msec'
есть желание повозиться с квантумами, инструмент нужен по-удобнее.
лично мне пока батч-файлы ни разу не пригодились...
а вот проги, умеющей скидывать образ диска посекторно, да еще с компрессией - в природе не существует имхо...
а надо - очень!
всякие там ghost и проча - сперва тестируют логическую структуру диска...
вот, предположим - есть диск с кучей битых секторов... сектора я заремапил, а дальше что? дальше - руками восстанавливать логическую структуру... но перед этим хотелось бы ради возможности отката сохранить образ того, что есть... а как? ghost и прочие - пошлют куда подальше... а у MHDD - ограничение 2 Гиг, естественно...
а была бы компрессия - те же 2 гига архива, но исходных данных-то туда влезет побольше...
что касается "утяжеления" программы... Сеть полна исходников всяких L-Z, весьма компактных на мой взгляд...
(извиняюсь что не по теме)
в HDDL одна команда = одному посылу в регистры. в Квантуме же одна команда = пачке байтов в один регистр. Это есть не удобно.
так что , в Батч МНДД скоро появится новая команда ?
(извиняюсь что не по теме)
в HDDL одна команда = одному посылу в регистры. в Квантуме же одна команда = пачке байтов в один регистр. Это есть не удобно.
так что , в Батч МНДД скоро появится новая команда ?
Я думаю, что никогда. Такие вещи люди сами пишут. BTW сомостоятельное написание в работе помогает...
потом поделюсь, прийду вот только домой. а пока на вскидку вот такакя задача. есть *.mem файл. нужно его блоками по 512 байт передать в винт. Но перед каждым блоком должна подаваться команда, указывающая адрес. вроде придется вручную бить файл?
==
потом поделюсь, прийду вот только домой. а пока на вскидку вот такакя задача. есть *.mem файл. нужно его блоками по 512 байт передать в винт. Но перед каждым блоком должна подаваться команда, указывающая адрес. вроде придется вручную бить файл?
==
А зачем, если не секрет
в MHDD есть процедура посекторной записи (точнее, осталась там случайно)...
Или тебе своими командами (не 3xh?)
ну если бы работал я у Максора, то можно было бы так сказать .
вобщем поюзал я ash.exe. для начала решил в скрипты затолкать работу с фуджиками.
вобщем вот так:
#defsub valid %%0 &Fuji valid Mode
wr er fah
wr sc 43h
wr sn 42h
wr cl 41h
wr ch 40h
wr dh ??h
wr st c1h
#defend
- не работает. наверное так можно только АТАшные команды посылать.
#defsub valid2 %%0 &Fuji valid Mode2
regs fah 43h 42h 41h 40h ??h c1h
#defend
- так работает. но далее :
#defsub frm2 %%0 &Read Fuj Mod2
regs 70h 01h 00h 00h 00h ??h c2h
rx
writef 702.BIN
#defend
в файл кладет 1 килобайт. Хотя из кролика в буфер попадает весь модуль, до падения DRQ. короче где интсрумент взять? Автор ash.exe молчит.
ну если бы работал я у Максора, то можно было бы так сказать .
вобщем поюзал я ash.exe. для начала решил в скрипты затолкать работу с фуджиками.
вобщем вот так:
#defsub valid %%0 &Fuji valid Mode
wr er fah
wr sc 43h
wr sn 42h
wr cl 41h
wr ch 40h
wr dh ??h
wr st c1h
#defend
- не работает. наверное так можно только АТАшные команды посылать.
#defsub valid2 %%0 &Fuji valid Mode2
regs fah 43h 42h 41h 40h ??h c1h
#defend
- так работает. но далее :
#defsub frm2 %%0 &Read Fuj Mod2
regs 70h 01h 00h 00h 00h ??h c2h
rx
writef 702.BIN
#defend
в файл кладет 1 килобайт. Хотя из кролика в буфер попадает весь модуль, до падения DRQ. короче где интсрумент взять? Автор ash.exe молчит.
автор сейчас имеет проблемы с доступом к сети, так что придётся подождать .
ну если бы работал я у Максора, то можно было бы так сказать .
вобщем поюзал я ash.exe. для начала решил в скрипты затолкать работу с фуджиками.
вобщем вот так:
#defsub valid %%0 &Fuji valid Mode
wr er fah
wr sc 43h
wr sn 42h
wr cl 41h
wr ch 40h
wr dh ??h
wr st c1h
#defend
- не работает. наверное так можно только АТАшные команды посылать.
#defsub valid2 %%0 &Fuji valid Mode2
regs fah 43h 42h 41h 40h ??h c1h
#defend
- так работает. но далее :
#defsub frm2 %%0 &Read Fuj Mod2
regs 70h 01h 00h 00h 00h ??h c2h
rx
writef 702.BIN
#defend
в файл кладет 1 килобайт. Хотя из кролика в буфер попадает весь модуль, до падения DRQ. короче где интсрумент взять? Автор ash.exe молчит.
поимел немного доступа. отвечаю.
1) при конструировании своих команд лучше пользоваться
regs (меньше вероятность что нибудь перепутать)
wr тоже можно юзать, но регистр задавай _цифрой_, потому что мнемоимена регистров _не совпадают_ с тем, что ты видишь сбоку. они таковы
ft =1
sc =2
sn =3
cl =4
ch =5
dh =6
dc =device control (для софтресета)
ты использовал имена er,st которые интерпретировались как 0. потому и не работало.
2)в доке написано, что writef без указания количества байт кидает в буфер весь файл. так вот это неправда
по умолчанию она записывает таки ровно 1024 байта.
поэтому всегда задавай размер.
пример:
lban 0 10
cmd 20h
rx 10s
writef stuff.bin 10s
3)в скриптах сегодня нашел какой-то странный глюк, эпизодически появляющийся при передаче 2, 3 и далее параметров. если параметр только 1, то проблема не возникает. с чем связано пока не знаю, вечером дома посмотрю в исходниках.
4) в свете всего вышесказанного вот пример для фуджей.
опробован. работает.
--------------------------------------
#ash
#defsub rmf %%1 &read mod to file
rm %1
writef mod.bin 100s
#defend
-------------------------------------------
PS по вопросу подачи файла кусками, в несколько команд:
загружай (readf) весь файл, отправляй первый кусок, затем
при помощи mov переноси на его место следующий, отправляй его и так далее.
пример - перенос 2 секторов по смещению 5120 (10,11 сетора) на смещение 0 (0,1 сектора)
mov 0s 10s 2s
PS2 заглядывай в подсказку команды (<cmd> ?), иногда там может быть ответ на твой вопрос.