1) Надо разобраться что и как здесь: ihdd.ru/forum/stm3500320as-t7682.html
По крайней мере в части определения координат служебных треков и буфера чтения винта.
вот в этом вся и проблема в определении координат служебных треков и буф чтения, в остальном справлюсь
правильно ли я понял что нужно прочитать адреса по Blks 001856-001BE7 (000392), BufAddr 0030AC00-0037EC8F, DBA 0630AC00, BytesPerBlk 208 Default Diag Rd Buf
Blks 001856-001BE7 - буфер чтения вашего винта, размер 392(HEX) сектора
Blks 001BF9-001F8A - буфер записи (392)
надо спозиционировать 0-ю голову на нужный трек, считать и забрать из буфера чтения результат.
Где-то так...
Head 1, PhyCyls 0001CD22 - 0001CEE3, LogCyls 00000000 - 00000191
First Sec Sym Sym Data
Zn Cyl Track Wedge Track Rate
00 0001CD22 0315 0630 00062160 386.250
01 0001CE03 0315 0630 00062160 386.250
F3 2>A0
Current Addr Mode
User LLL CHS Mode
Hd 0 Cyl 000000
All Addr Modes
User LBA Mode
LBAs 00000000 - 1D1C596F
System LBA Mode
LBAs 00000000 - 000883AF
User LLL CHS and User LLP CHW Modes
Hd 0 Cyls 000000 - 0282B9
Hd 1 Cyls 000000 - 02531D
System LLL CHS and System LLP CHW Modes
Hd 0 Cyls 000000 - 0001A3
Hd 1 Cyls 000000 - 000191
PLP CHS and PLP CHW Modes
Hd 0 Cyls 000000 - 028A1B
Hd 1 Cyls 000000 - 0259F3
Buffer Sector Offset 00000000
F3 2>
надо спозиционировать 0-ю голову на нужный трек, считать и забрать из буфера чтения результат
STR/r,0,315////1// - чтение трека из 315h секторов (в моём случае это 392h сектора) правильно ?
остальное не по силам
спасибо за понимание, если никто не поможет разобраться дальше, тогда закрывайте тему.
Что уж прямо так сразу руки опускать. Ещё не кончилось.
// Прикольно будет, если хотя-бы что-то поймёшь с первого раза.....
Со второго раза про 392 понял, уже хорошо. Можно дальше...
Про
// STR/s000181BF,0,22////1// - Позиционирование на нужный трек нулевой головки.
должно быть вообще понятно. Это позиционирование на нужный трек нулевой головки.
Нужный трек определил?
Это служебная зона, значит определяется по координатам служебной зоны + смещение в ней. Опять же это есть в той ссылке на ihdd.ru на этих первых двух страницах.
А эта команда понятна будет, если скрестить описание команды B для сигейтов (опять же я её тогда нашел в этой ссылке на ihdd.ru, только где-то в конце) с описанием команд ST_MEM. Нужно только разобраться.
1) Надо разобраться что и как здесь: ihdd.ru/forum/stm3500320as-t7682.html
По крайней мере в части определения координат служебных треков и буфера чтения винта.
вот в этом вся и проблема в определении координат служебных треков и буф чтения, в остальном справлюсь
Так на первых двух страницах всё расписано:
ihdd.ru/forum/stm3500320as-t7682-20.html
Blks 000E1D-000E1D (000001), BufAddr 001C3A00-001C3BFF, DBA 061C3A00, BytesPerBlk 200 Cmd Input Buf
Blks 000E1E-000E1E (000001), BufAddr 001C3C00-001C3DFF, DBA 061C3C00, BytesPerBlk 200 Diag Batch File
Blks 000E1F-000E1F (000001), BufAddr 001C3E00-001C3FFF, DBA 061C3E00, BytesPerBlk 200
Blks 000E20-000E20 (000001), BufAddr 001C4000-001C41FF, DBA 061C4000, BytesPerBlk 200
Blks 000E21-000E21 (000001), BufAddr 001C4200-001C43FF, DBA 061C4200, BytesPerBlk 200
Blks 000E22-000E22 (000001), BufAddr 001C4400-001C45FF, DBA 061C4400, BytesPerBlk 200
Blks 000E23-000E23 (000001), BufAddr 001C4600-001C47FF, DBA 061C4600, BytesPerBlk 200
Blks 000E24-000E37 (000014), BufAddr 001C4800-001C6FFF, DBA 061C4800, BytesPerBlk 200 Online Cmd SDBP DFB
Blks 000E38-000E4B (000014), BufAddr 001C7000-001C97FF, DBA 061C7000, BytesPerBlk 200 Diag Mode Cmd SDBP DFB
Blks 000E4C-000E5F (000014), BufAddr 001C9800-001CBFFF, DBA 061C9800, BytesPerBlk 200 Symbol Error Map Log
Blks 000E60-000E73 (000014), BufAddr 001CC000-001CE7FF, DBA 061CC000, BytesPerBlk 200 Test Service SDBP DSB
Blks 000E74-000ECD (00005A), BufAddr 001CE800-001D9BFF, DBA 061CE800, BytesPerBlk 200
Blks 000ECE-000F27 (00005A), BufAddr 001D9C00-001E4FFF, DBA 061D9C00, BytesPerBlk 200 Drive Geometry Info
Blks 000F28-000F81 (00005A), BufAddr 001E5000-001F03FF, DBA 061E5000, BytesPerBlk 200
Blks 000F82-000FDB (00005A), BufAddr 001F0400-001FB7FF, DBA 061F0400, BytesPerBlk 200
Blks 000FDC-001035 (00005A), BufAddr 001FB800-00206BFF, DBA 061FB800, BytesPerBlk 200
Blks 001036-00108F (00005A), BufAddr 00206C00-00211FFF, DBA 06206C00, BytesPerBlk 200
Blks 001090-0010E9 (00005A), BufAddr 00212000-0021D3FF, DBA 06212000, BytesPerBlk 200
Blks 001856-001BE7 (000392), BufAddr 0030AC00-0037EC8F, DBA 0630AC00, BytesPerBlk 208 Default Diag Rd Buf
Blks 001BF9-001F8A (000392), BufAddr 0037F200-003F328F, DBA 0637F200, BytesPerBlk 208 Default Diag Wrt Buf
правильно ли я понял что нужно прочитать адреса по Blks 001856-001BE7 (000392), BufAddr 0030AC00-0037EC8F, DBA 0630AC00, BytesPerBlk 208 Default Diag Rd Buf
Blks 001856-001BE7 - буфер чтения вашего винта, размер 392(HEX) сектора
Blks 001BF9-001F8A - буфер записи (392)
надо спозиционировать 0-ю голову на нужный трек, считать и забрать из буфера чтения результат.
Где-то так...
ок чтото недопру толком.
ASCII Diag mode
F3 T>/2
F3 2>x1
System Partition
LBAs 00000000 - 000883AF
PBAs 00000000 - 000B44C7
HdSkew 002A, CylSkew 001C
ZonesPerHd 02
Head 0, PhyCyls 0001F206 - 0001F3EB, LogCyls 00000000 - 000001A3
First Sec Sym Sym Data
Zn Cyl Track Wedge Track Rate
00 0001F206 0315 0630 00062160 386.250
01 0001F2F9 0315 0630 00062160 386.250
Head 1, PhyCyls 0001CD22 - 0001CEE3, LogCyls 00000000 - 00000191
First Sec Sym Sym Data
Zn Cyl Track Wedge Track Rate
00 0001CD22 0315 0630 00062160 386.250
01 0001CE03 0315 0630 00062160 386.250
F3 2>A0
Current Addr Mode
User LLL CHS Mode
Hd 0 Cyl 000000
All Addr Modes
User LBA Mode
LBAs 00000000 - 1D1C596F
System LBA Mode
LBAs 00000000 - 000883AF
User LLL CHS and User LLP CHW Modes
Hd 0 Cyls 000000 - 0282B9
Hd 1 Cyls 000000 - 02531D
System LLL CHS and System LLP CHW Modes
Hd 0 Cyls 000000 - 0001A3
Hd 1 Cyls 000000 - 000191
PLP CHS and PLP CHW Modes
Hd 0 Cyls 000000 - 028A1B
Hd 1 Cyls 000000 - 0259F3
Buffer Sector Offset 00000000
F3 2>
надо спозиционировать 0-ю голову на нужный трек, считать и забрать из буфера чтения результат
подскажите куда дальше
подскажите куда дальше
А дальше - скрипт для ST_MEM. В нём всё как написано. И прямо по строчкам
STR/s000181BF,0,22////1// - Позиционирование на нужный трек нулевой головки.
STR/r,0,315////1// - чтение трека из 315h секторов
STR/B15C1,15C1,315,1/1/0_10.LOG/1/1/0/1/ - забрать результат из буфера чтения, то бишь свалить дамп буфера чтения в файл 0_10.log
Везде подставить свои значения.
что то я вообще запутался, видно не моё это
разобрался только с
STR/r,0,315////1// - чтение трека из 315h секторов (в моём случае это 392h сектора) правильно ?
остальное не по силам
спасибо за понимание, если никто не поможет разобраться дальше, тогда закрывайте тему.
разобрался только с
STR/r,0,315////1// - чтение трека из 315h секторов (в моём случае это 392h сектора) правильно ?
остальное не по силам
спасибо за понимание, если никто не поможет разобраться дальше, тогда закрывайте тему.
Что уж прямо так сразу руки опускать. Ещё не кончилось.
// Прикольно будет, если хотя-бы что-то поймёшь с первого раза.....
Со второго раза про 392 понял, уже хорошо. Можно дальше...
Про
// STR/s000181BF,0,22////1// - Позиционирование на нужный трек нулевой головки.
должно быть вообще понятно. Это позиционирование на нужный трек нулевой головки.
Нужный трек определил?
Это служебная зона, значит определяется по координатам служебной зоны + смещение в ней. Опять же это есть в той ссылке на ihdd.ru на этих первых двух страницах.
А эта команда понятна будет, если скрестить описание команды B для сигейтов (опять же я её тогда нашел в этой ссылке на ihdd.ru, только где-то в конце) с описанием команд ST_MEM. Нужно только разобраться.
// STR/s000181BF,0,22////1// - Позиционирование на нужный трек нулевой головки.
должно быть вообще понятно. Это позиционирование на нужный трек нулевой головки.;)
Нужный трек определил?
в том то и дело что нет ....
в том то и дело что нет ....:(
/2_x1 чего говорит?
Кстати, у тебя, судя по вышеприведённому, длина трека для чтения так же будет 315.
И посмотри внимательно мой скрипт целиком. На кой ляд я менял треки?
Отправить комментарий