Не, работает.
Вид для печати
Arseny, Спасибо, у меня тоже получилось, а вот с sys1002.dsk не заработало.
Выяснил алгоритм подсчёта CRC для HDD home block, вот он:
Или, в переложении на C/С++:Код:Sb.Tst:
jsr r2,crcclc
.word 377
add (r3),r5
bis r4,r5
Return
Sb.clc:
jsr r2,crcclc
.word 376
; inc r5
; neg r5
com r5
neg r4
mov r4,(r3)+
mov r5,(r3)
Return
crcclc:
mov (r2)+,r0
mov #SbBuf,r1
mov r1,r3
clr r4
clr r5
2$: add (r3)+,r4
adc r5
sob r0,2$
Rts r2
Код:static DWORD GetHomeBlockChecksum(void* buffer)
{
WORD* p = (WORD*) buffer;
DWORD crc = 0;
for (int i = 0; i < 255; i++)
{
crc += (DWORD) *p;
p++;
}
crc += ((DWORD)*p) << 16;
return crc;
}
Странно, а в эмуляторе не хотела пока чексумму не поправил.
А, сорри, это я туплю -- не то вбил что Алексей написал. Всё верно, контрольная сумма та же.
---------- Post added at 17:37 ---------- Previous post was at 16:06 ----------
Сделал команду hx -- сохранение отдельной партиции из образа винта в .dsk-файл:
rt11dsk hx <HddImage> <Partn> <FileName> - extract partition to file
Дальше собираюсь делать hu -- это обратная операция, обновление партиции в образе из указанного .dsk-файла.
В аттаче новая версия RT11DSK, добавлены новые команды для работы с образом жёсткого диска -- hx и hu. Поддерживаются как прямые так и инверсные образы.
Также можно взять здесь: http://ukncbtl.googlecode.com/files/rt11dsk.zipКод:Disk image commands:
rt11dsk l <ImageFile> - list image contents
rt11dsk e <ImageFile> <FileName> - extract file
rt11dsk a <ImageFile> <FileName> - add file
Hard disk image commands:
rt11dsk hl <HddImage> - list HDD image partitions
rt11dsk hx <HddImage> <Partn> <FileName> - extract partition to file
rt11dsk hu <HddImage> <Partn> <FileName> - update partition from the file
Parameters:
<ImageFile> is UKNC disk image in .dsk or .rtd format
<HddImage> is UKNC hard disk image file name
<Partn> is hard disk image partition number, 0..23
<FileName> is a file name to read from or save to
Добавил также команду 'hi' -- инвертирование образа винчестера.
Дальше будет логично сделать работу с отдельными партициями винчестера как с обычными дисками -- получение каталога, извлечение/добавление файлов.
Хорошо бы еще принять какое-то расширение для образов винчестеров УКНЦ. для автоматизации работы (в том же FAR и TC). наверное ...