В процессе эмуляции КЖД выяснилась довольно занятная вещь - все драйверы DW для ДВК содержат глупую ошибку, скопированную из первых дековских драйверов DW.
Эта ошибка была исправлена в RT-11 v5.3 и вот как была описана:
Код:
DW
o Previously, the DW handler applied the wrong mapping of logical block
numbers (LBN) to physical block numbers (PBN) on RD5x hard disks. The
correct mapping is used in RT-11 V5.3.
The DW mapping error caused file-structured operations (.READ/.WRITE
requests) to map to different locations than non-file-structured oper-
ations (.SPFUN requests). File-structured and non-file-structured
operations are corrected for RT-11 V5.3; however, see the ISPFN and
.SPFUN sections in this file for changes to the blk argument.
Because DW mapping is changed for RT-11 V5.3, all RD5x hard disks that
were used by a previous version of RT-11 must be reconfigured.
Понятно, что в масштабах СССР никто уже ничего "реконфигурировать" не собирался и ошибка вычисления адреса блока на диске осталась уже в качестве "фичи" всех драйверов DW ДВК.
Причина ошибки в том, что самый первый логический сектор на диске DW перезаписывается программой начального теста в ПЗУ DEC Pro350 / Эл.85 и из-за этого блоки нужно адресовать со смещением на один сектор ( 0 -> 0:1 ; 14 -> 0:15 ; 15-> 1:0 ; 30 -> 1:15 ; 31 -> 2:0 ). Но из-за ошибки блоки адресовались так: ( 0 -> 0:1 ; 14 -> 0:15 ; 15-> 0:0 ; 30 -> 1:15 ; 31 -> 1:0 ), т.е. вместо того, чтобы переносить каждый 16-й блок на 0-й сектор следующей дорожки - он адресовался в 0-й сектор текущей дорожки.
На работоспособности ДВК это никак не сказывается. Единственная неприятность в том, что образ диска начинается не с 0-го блока, а с 15-го, после которого уже идут 0-й, 1-й ( и т.д. ) и такая печаль повторяется через каждые 16 блоков, т.е. после 14-го блока в образе идёт 31-й, а уже потом 16-й, 17-й ( и т.д. ).