Собственно сорцы...
Вид для печати
Собственно сорцы...
Кстати если не лень, посмотри на таблицу трансляции блоков - может придет в голову кау упростить. Мне ночью уже лень было думать, а сейчас еще лень :)
Может мне кажется, но dzcvt, при конвертации, вроде не туда пишет сектор 1 дорожки 0.
(т.е. загрузочная дискета становится незагрузочной).
Я вытаскиваю файлы из конвертированных образов формата FILES11 вот этой утилитой: http://www.magma.ca/~psharris/f11brows.htm (поддерживает работу с директориями).
Рекомендую в связке с DOSbox для новых систем. Добавьте там сразу в dosbox.conf что-то типа mount C ..\Virtual и при старте сразу будет доступ для удобной передачи файлов.
04.01.2013 - Выложена исправленная версия плагина: RT-11dsk.wcx.v01.07
Изменения:
1. Исправлены существенные ошибки ( см. описание ниже ).
2. Улучшен алгоритм определения кодировки TRANSLIT.
...
В предыдущих версиях плагина обнаружились две существенные ошибки. Обе ошибки полностью разрушают данные в образе, при внешне нормальном каталоге.
Первая ошибка проявляется при первом удалении файла в ни разу не изменённом плагином образе нестандартного размера, а вторая - при копировании текстов с русскими буквами в "шифрованные" образы ( DX, DY, DZ ).
Вопрос - как отключить перекодировку при копировании ?
Существуют два способа отключения перекодировки текстовых файлов при копировании из DSK-образа в каталог Windows:
1. Использовать <Shift><F5> - тогда при копировании текстовых файлов не перекодируются символы и не копируются завершающие нули.
2. Создать где угодно каталог с именем Not Recoded и копировать в него или в любой его подкаталог - тогда текстовые файлы копируются как двоичные ( без перекодировки и с завершающими нулями ).
11.02.2014 - Выложена дополненная версия плагина: RT-11dsk.wcx.v01.08
Изменения:
1. Добавлены стандартные размеры образов 5013504, 10027008 и 20152320 байт.
2. Теперь физический размер образа приводится к логическому только тогда, когда он меньше логического.
Скачал архив отсюда: pdp-11.org.ru/files/unix/demos30.zip
Total его не открывает.
То-есть архив надо открывать под Юниксом.
Чтобы установить ОС Демос 3.0 на жёсткий диск реальной ДВК-4 - нужно подключить образы дисков 0 .. 5 к приводам HX, потом командой COPY/DEV записать эти образы на реальные дискеты MY и выполнить загрузку ДВК с дискеты 0.
Подробное описание дальнейших действий здесь:
Код:1. НАСТРОЙКА ОПЕРАЦИОННОЙ СИСТЕМЫ ДЕМОС
====================================
В разделе описываются процедуры, которые необходимо вы-
полнять, как при первичной установке системы, так и в случае
"полного разрушения" корневой файловой системы или замены
жесткого диска; описывается корневая файловая система и не-
которые справочники.
Процесс подготовки системы к эксплуатации можно разде-
лить на следующие этапы:
- первичная установка (или восстановление) системы с
дистрибутивного набора гибких магнитных дисков (ГМД);
- загрузка системы и проверка ее целостности;
- настройка системных файлов.
При "частичном разрушении" файловых систем рекоменду-
ется попытаться восстановить их целостность программой fsck
(см. приложение 2).
1.1. Первичная установка системы
===========================
Для первичной установки системы необходимо:
- тумблером "СЕТЬ" включить ПЭВМ;
- вставить дискету с номером 0 (стартовую дискету) в
верхнее устройство (нулевое);
- получив приглашение "@", нажать клавишу <B>, и затем
в ответ на приглашение "$" (доллар) ввести "MY0" (или "MY" и
нажать клавишу <ВК>);
- через некоторое время на экран будет выдано приглаше-
ние "BOOT:..."; в ответ на него необходимо нажать клавишу
<ВК>;
- на запрос "установка ДЕМОС требует стирания информа-
ции на жестком диске..." необходимо ответить "Y" (YES) и на-
жать клавишу <ВК>; отменить неправильно введенный символ (до
нажатия клавиши <ВК>) можно при помощи клавиши <ЗБ>;
- на запрос "Введите время..." необходимо ввести 10
цифр и нажать клавишу <ВК>; время задается следующим обра-
зом:
ггммддччмм,
где гг - две последние цифры номера года (например, 90);
мм - номер месяца (от 01 до 12);
дд - номер дня в месяце;
чч - час (от 00 до 23);
мм - минуты (от 00 до 59);
- на запрос "Емкость накопителя на жестком диске..."
необходимо ввести цифру - номер типа накопителя и нажать
клавишу <ВК>; тип накопителя задается следующим образом:
1. 5 Мб 153 цилиндра /0-152/ - установка СУБД "РУБИН" невозможна
2. 10 Мб 306 цилиндров /0-305/ - установка СУБД "РУБИН" невозможна
3. 10 Мб 306 цилиндров /0-305/ - установка СУБД "РУБИН" возможна
4. 20 Мб 612 цилиндров /0-611/ - установка СУБД "РУБИН" возможна
- далее на запрос "Форматировать жесткий диск?" необ-
ходимо ввести "Y", если требуется отформатировать диск, либо
ввести "N", если не требуется;
- после загрузки минисистемы на жесткий диск будет вы-
дано сообщение о необходимости ее перевызова с этого диска;
через некоторое время будет выдано приглашение "@";
- в ответ на это приглашение необходимо набрать "B", а
затем в ответ на приглашение "$" (доллар) ввести "DW0" (или
"DW" и нажать клавишу <ВК>);
- через некоторое время на экран будет выдано приглаше-
ние "BOOT:..."; в ответ на него необходимо нажать клавишу
<ВК>;
- после того, как система будет вызвана, она запросит дискету N1 из
базового набора; ее необходимо вставить в любой накопитель
на гибких дисках, ввести номер накопителя и нажать
клавишу <ВК>;
- после считывания дискеты система запросит следующую;
необходимо вынуть дискету с номером 1 из накопителя
и вставить дискету с номером 2, затем с номером 3 и
так далее;
- после того, как будут прочитаны все дискеты базового
набора, система автоматически перезагрузится и проверит фай-
ловую систему на жестком диске (при этом может произойти
повторная перезагрузка);
- после перезагрузки система выдаст приглашение "Имя:";
необходимо ввести имя суперпользователя root для выполнения
административных функций в системе ДЕМОС.
Если вход в систему выполнен первый раз после первона-
чальной установки системы или полного восстановления, необ-
ходимо проделать следующее:
- установить пароль для пользователя root командой
passwd;
- продублировать дистрибутивный набор ГМД.
Для копирования дискет можно использовать команду cpfd
(см. 4.6.2).
Перед выключением ПЭВМ пользователь должен выполнить
команду:
/etc/reboot -h ( Обязательно !!! )
На дискетах дистрибутивного набора должны быть наклеены
маркеры защиты записи. Это необходимо для того, чтобы из-за
неисправности аппаратуры или неосторожного использования не
разрушить информацию на дискетах.
Во время загрузки с дискеты с номером 0, она
должна быть без маркера.
1.2. Загрузка и проверка целостности системы
=======================================
Для загрузки операционной системы ДЕМОС необходимо:
- включить питание ПЭВМ;
- получив приглашение "@", нажать клавишу <B>, и затем
в ответ на приглашение "$" (доллар) ввести "DW0" (или "DW" и
нажать клавишу <ВК>);
- через некоторое время на экран будет выдано приглаше-
ние "BOOT:..."; в ответ на него необходимо нажать клавишу
<ВК>;
- на запрос "Введите время ..." необходимо ввести 10
цифр и нажать клавишу <ВК>;
- далее на запрос "Проверять файловые системы?" необхо-
димо нажать клавишу <ВК> (если требуется проверять файловые
системы) или ввести "N" и нажать клавишу <ВК> (если не тре-
буется проверять файловые системы);
- после проверки файловых систем будет выдано приглаше-
ние "Имя:"; необходимо ввести имя, под которым пользователь
зарегистрирован в системе; после его обработки осуществится
вход в систему.
П р и м е ч а н и е. Во время проверки файловых систем
может произойти повторная перезагрузка.
Если в ответ на запрос "Имя:" ввести "user", то прои-
зойдет вход в систему ПРАКТИКА (описание системы ПРАКТИКА
см. разд.3 "Справочного руководства").
После завершения работы в системе необходимо на пригла-
шение для ввода команд набрать "/etc/reboot -h"; после того,
как система ответит "SYNCING DISKS ... DONE", можно выклю-
чить питание ПЭВМ.
2. РАСШИРЕННЫЕ ВОЗМОЖНОСТИ ОС ДЕМОС ВЕРСИИ 3.0
===========================================
1.
Генерация ядра demos содержит следущие изменения в
сторону повышенной оптимальности и эффективности работы ядра:
a). Создан новый, максимально быстрый и очень расторопный
в работе драйвер жесткого диска типа "Винчестер", ре-
жимы работы которого настраиваются программой rwset.
b). Откорректирован и оптимизирован драйвер гибкого
диска.
c). Создан новый суперуниверсальный драйвер принтера,
поддерживающий работу печатающих устройств типа:
EPSON FX-800, EPSON LX-800, СМ 6302, DZM-180, СМ 6315,
СМ 6900, ROBOTRON СМ 6329, D100, D100M, и т.д.
в полном об_еме их функциональных возможностей
и с учетом ошибок в ПЗУ EPSON FX-800. Режимы работы
драйвера настраивается программой lpset.
Подробнее см. файл READ_LP в корневом каталоге.
d). Данная версия ядра поддерживает работу контроллера КЦГД
как с ПЗУ КР18101РЕ2-181 на плате КЦГД, так и с ПЗУ
КР18101РЕ2-182, работающей в 8-битном символьном режиме.
(Следует заметить, что ядро версии 2.0 не способно рабо-
тать с КЦГД на ПЗУ КР18101РЕ2-182). Однако, поставляемый
графический протокол /etc/graf,загружаемый в ОЗУ КЦГД
и разработанный для ПЗУ КР18101РЕ2-181, не будет за-
гружаться при ПЗУ КР18101РЕ2-182. В настоящее время
разрабатывается новый графический протокол для
последней ПЗУ.
В целях экономии памяти изменены параметры
конфигурации ядра:
e). Количество буферов ввода/вывода.
f). Количество процессов в системе.
g). Количество одновременно исполняемых программ.
h). Количество описателей файлов.
i). Количество одновременно открытых файлов.
j). "Зажата" статистика по буферам ввода/вывода, по под-
качке, по загрузке системы, по командам.
k). Уменьшено количество оверлеев ядра demos.
l). И другие мелочи...
Не я хотел для эмулятора его "примерить", но с такими запросами я думаю он не пойдет.
С ДЕМОС как-то сложно всё, я порядок установки и описание читал много раз,
но если дискеты в формате не РТ-11 как с ними работать вообще? )
А пощупать конечно хотелось, благо и документация как-бы есть.
Еще раз большое спасибо автору за плагин.
А версии x64 не планируется?
Жаль, но всё-равно спасибо.
Небольшая идейка... не особо важная, так, если будет желание...
TSX-Plus кроме даты хранит время создания файла. Время хранится в 6м слове записи о файле (пишется туда в момент закрытия созданного файла), в обычном RT-11 там 0. При копировании файла время не сохраняется и кроме программы FILTIM в TSX-Plus никто с ним не работает по сути :)
In addition to the date of creation of a file, TSX-Plus also stores file creation times in device directories. At
the time a file is closed, the current time of day is automatically stored in the sixth word of the directory entry
for that file. Under RT-11, this word is unused for permanent files and contains the job and channel number
for tentative file entries. In order to represent the time as a positive 16-bit value, the time is converted to an
integer representing the number of three-second intervals since midnight. For example, if a file were closed
at 11:13:22, then the sixth word of the permanent directory entry for that file would contain 13467 (32233
octal).Код:11 hr x 60 min/hr x 60 sec/min = 39600 sec
13 min x 60 sec/min = 780 sec
22 sec = 22 sec
_________
40402 sec / 3 = 13467 3-sec units
23.09.2014 - Выложена дополненная версия плагина: RT-11dsk.wcx.v01.09
Изменения:
1. Добавлена поддержка файловых систем DOS-11 и XXDP.
...
28.09.2014 - Выложена исправленная и дополненная версия плагина: RT-11dsk.wcx.v01.10
Изменения:
1. Добавлена поддержка файловых систем XXDP2 и ТМОС-2.
2. Улучшена поддержка DOS-11 и XXDP.
3. Исправлена ошибка с ложным сообщением об ошибке записи при удалении свободного места в образе RT-11.
4. Исправлена ошибка, приводившая к копированию файлов без расширения в каталог Not Recoded, как в обычный каталог.
...
Есть ещё такая программа как Double Commander которая работает с плагинами от ТС.
Во общем то программа как программа но отличие от ТС в ней что не надо каждый раз вводить 1,2,3 при запуске. :)
Скачать здесь.
Для меня приятной новостью оказалось, что плагин поддерживает функциональность ТС для создания образа нового диска
и умеет сразу копировать в него выделенные на панели файлы (удовлетворяющие требованиям RT-11):
http://s017.radikal.ru/i433/1501/fa/088050262150.png
у меня размер получается динамический.
Я покликал на кнопку "Настройка" в разных плагинах своего компа и у каждого там выскакивает что-то своё, у кого About, у кого переадресация идёт или просто окошки.
Я думаю что если подумаем и сформируем список осмысленных пожеланий, то Patron вполне из этого что-то в свой To-Do list и добавит к реализации.
MOS-32M - намекаешь?Скрытый текст
Я вот с этим пока вижу проседание в плагине, поскольку у меня архив от Колдуна висит, не доступный к изучению полностью + я сильно подозреваю, что с Э-85 то же с местной файловой системой не всё так хорошо?
Есть ещё образы "спорные" - они были заявлены как полные и считанные без ошибок, а плагин их показывает "пустышками", где кроме "Unused" ничего как бы и
нет. Список конечно нужен. Только от реально заинтересованных людей конкретный
список, тогда автор возможно всерьёз его рассмотрит. Но все молчат. anasana, вспомни когда ДВК УК-НЦ архив начинали, Patron сам видел недоработки и сам их устранял, поскольку сам же видел что удобнее и как правильнее. Вот сейчас где все горячие парни по МС-скам и Э-85? Инициативность.
Мне допустим не ясно где и как изучать \ поглядетm содержимое
дистрибутивов ОПЕРАЦИОННОЙ СИСТЕМЫ ДЕМОС? - это как пример.
В общем я во внутреннем хламничке у себе натыкаюсь время от времени
на материалы - которые плагином не поддерживаются, но немного вне
(строго говоря) моей тематики УК-НЦ \ ДВКашной. (RT-11).
[свернуть]
---------- Post added at 19:17 ---------- Previous post was at 18:59 ----------
Я кстати говоря - пользуясь моментом (пока не забыл), у меня несколько человек
просят ссылки на образы для ДВК и когда я про плагин начинал объяснять, отвечали,
ты нам образы скинь или ссылки мы разберёмся чем их смотреть.
Потом выяснилось, что у них совсем не виндоус, вот чем под другими ОС (линуксы всяческие видимо-невидимо которых), RT-11-образы ребята смотрят ?
Не, там внутри совсем другая вообще "левая" кухня.. :)(, хотя я только ЗА, но будем реалистами..)
А вот по меню настроек плагина на кнопку повесить бы даже только из повседневного в использовании,
скорее всего фиксированный или динамический размер дисков RT-11,
и может требуется ли перемешивание секторов типа DZ, и уже будет хороший плюс в инструментарий.
2 Patron, хотелось бы просто попросить вас по возможности
добавочку .rd-шки в плагин. по горячему эту "аномалию"(особенность) по RT-11 , что бы Pro/TSX удобство работы с ней улучшить. Сейчас это очень актуально,
а стимул рабочий-вариант с инструкцией для ДВК ? А ребята с прошкой будут так же
я думаю гораздо более удобный инструмент иметь с этой добавкой в плагин.
Спасибо.
Ранее я уже объяснил, почему поддержки образов DW в плагине для TC не будет никогда.
Можно, наверное, как-то пропатчить плагин, чтобы он вместо заголовка в 256 байтов начал использовать заголовок в 512 байтов.
Надо найти в плагине следующий код и в двух местах заменить 256 на 512 ( для этого там, где выделено красным - запатчить 02 вместо 01 ):
Код:8d b0 00 0d 00 00 c7 81 c4 44 00 00 00 01 00 00 c7 41 0c 00 0c 00 00 89 51 10
Код:83 49 28 c1 e0 09 05 00 01 00 00 89 81 e0 44 00 00 33 c0 88 81 e4 44 00 00 88
...Код:?Is_RT_11_RTD@@YA_NPAUdsk_descriptor@@@Z PROC ; Is_RT_11_RTD, COMDAT
; 3859 : pDD->nHeaderSize = 256;
00000 8b 4c 24 04 mov ecx, DWORD PTR _pDD$[esp-4]
; 3860 : pDD->uFirstDirSegOffset = 6*512;
; 3861 : pDD->pHomeBlock = (home_block_RT11*)((DWORD)pDD->pDirBuf + 512 + pDD->nHeaderSize);
00004 8b 81 fc 44 00
00 mov eax, DWORD PTR [ecx+17660]
0000a 56 push esi
0000b 8d 90 00 03 00
00 lea edx, DWORD PTR [eax+768]
; 3862 : pDD->pFirstDirSeg = (dir_seg_RT11_header*)((DWORD)pDD->pDirBuf + pDD->uFirstDirSegOffset + pDD->nHeaderSize);
00011 8d b0 00 0d 00
00 lea esi, DWORD PTR [eax+3328]
00017 c7 81 c4 44 00
00 00 01 00 00 mov DWORD PTR [ecx+17604], 256 ; 00000100H
00021 c7 41 0c 00 0c
00 00 mov DWORD PTR [ecx+12], 3072 ; 00000c00H
00028 89 51 10 mov DWORD PTR [ecx+16], edx
0002b 89 71 14 mov DWORD PTR [ecx+20], esi
; 3863 :
; 3864 : if( pDD->pFirstDirSeg->addons & 1 || pDD->pFirstDirSeg->addons > 1000 ) { return false; }
0002e 0f b7 46 06 movzx eax, WORD PTR [esi+6]
00032 a8 01 test al, 1
00034 0f 85 94 00 00
00 jne $LN1@Is_RT_11_R
0003a 66 3d e8 03 cmp ax, 1000 ; 000003e8H
0003e 0f 87 8a 00 00
00 ja $LN1@Is_RT_11_R
; 3865 :
; 3866 : pDD->nExtraBytes = pDD->pFirstDirSeg->addons;
00044 0f b7 c0 movzx eax, ax
00047 89 81 c8 44 00
00 mov DWORD PTR [ecx+17608], eax
0004d 57 push edi
; 3867 : pDD->nRecBytes = 14 + pDD->nExtraBytes;
0004e 8d 78 0e lea edi, DWORD PTR [eax+14]
; 3868 : pDD->nMaxDirSegRecs = (1024-6)/pDD->nRecBytes;
00051 b8 fa 03 00 00 mov eax, 1018 ; 000003faH
00056 99 cdq
00057 f7 ff idiv edi
00059 89 b9 cc 44 00
00 mov DWORD PTR [ecx+17612], edi
; 3869 : pDD->nMaxRecs = pDD->nMaxDirSegRecs * 31;
; 3870 : pDD->pDirSeg = pDD->pFirstDirSeg;
0005f 89 71 18 mov DWORD PTR [ecx+24], esi
; 3871 : pDD->uDSK_Offset = pDD->pDirSeg->first_block*512 + pDD->nHeaderSize;
; 3872 : pDD->uConvRecNum = -1;
; 3873 : pDD->iRecNum = -1;
; 3874 : pDD->bFragmented = false;
; 3875 : pDD->bUnusedCombined = false;
; 3876 : pDD->uFreeSpace = 0;
; 3877 : pDD->pDataBuf = 0;
; 3878 : pDD->pEncodedDataBuf = 0;
; 3879 : pDD->bInverted_HDD_Image = false;
; 3880 : pDD->nHDD_Part = 0;
; 3881 : pDD->nHDD_PartMax = -1;
; 3882 :
; 3883 : pDD->ulDirZoneSize = pDD->uDSK_Offset;
; 3884 :
; 3885 : return Is_RT_11_DSK(pDD);
00062 51 push ecx
00063 89 81 d0 44 00
00 mov DWORD PTR [ecx+17616], eax
00069 6b c0 1f imul eax, 31 ; 0000001fH
0006c 89 81 d4 44 00
00 mov DWORD PTR [ecx+17620], eax
00072 0f b7 46 08 movzx eax, WORD PTR [esi+8]
00076 83 89 dc 44 00
00 ff or DWORD PTR [ecx+17628], -1
0007d 83 89 d8 44 00
00 ff or DWORD PTR [ecx+17624], -1
00084 83 49 28 ff or DWORD PTR [ecx+40], -1
00088 c1 e0 09 shl eax, 9
0008b 05 00 01 00 00 add eax, 256 ; 00000100H
00090 89 81 e0 44 00
00 mov DWORD PTR [ecx+17632], eax
00096 33 c0 xor eax, eax
00098 88 81 e4 44 00
00 mov BYTE PTR [ecx+17636], al
0009e 88 81 12 45 00
00 mov BYTE PTR [ecx+17682], al
000a4 89 81 e8 44 00
00 mov DWORD PTR [ecx+17640], eax
000aa 89 81 08 45 00
00 mov DWORD PTR [ecx+17672], eax
000b0 89 81 0c 45 00
00 mov DWORD PTR [ecx+17676], eax
000b6 88 41 23 mov BYTE PTR [ecx+35], al
000b9 89 41 24 mov DWORD PTR [ecx+36], eax
000bc 8b 81 e0 44 00
00 mov eax, DWORD PTR [ecx+17632]
000c2 89 41 08 mov DWORD PTR [ecx+8], eax
000c5 e8 00 00 00 00 call ?Is_RT_11_DSK@@YA_NPAUdsk_descriptor@@@Z ; Is_RT_11_DSK
000ca 59 pop ecx
000cb 5f pop edi
000cc 5e pop esi
; 3886 : }
000cd c3 ret 0
Чтобы без проблем открывать диски с расширением .RD - надо просто добавить это расширение в список обслуживаемых плагином:
Конфигурация -> Настройка -> Модули (Plugins) -> Модули архиваторов .WCX -> Настройка -> ( ввести rd в маленьком окошке, выбрать плагин в списке и нажать OK ).
Так уж и никогда? Как вариант, можно добавить поддержку дополнительных типов файлов - по типу файла "rd" переключаться в режим совместимости с DW Э-85, а для ДВК использовать какой-либо другой тип файла (например, "DWK" или "DVK", первый мне нравится больше - сразу можно догадаться, что это DW для ДВК). Подправить эмулятор, чтобы при выборе файл-образа ДВК-шного DW показывал файлы типа DWK и вперед! Да и для 85-х дискет можно выделить отдельный тип, например, DZ. А тип .DSK оставить для простых "линейных" файл-образов. Может имеет смысл сделать отдельные плагины для rd, DWK и DZ, убрав это дело из плагина для DSK.
Кстати, а почему плагин именно к ТС? Такая хардкорная тема - RT-11, даже нортоноподобной оболочки во время реальной эксплуатации системы не было, строго командная строка, само сабой просится пользовать консольный FAR и тут вдруг эта гуёвая размазня TC ? (Гуёвая - это от GUI, если что)... :) И соберешься редактировать - так в FAR'е отличный встроенный редактор, а TC вызывает "блокнот". Фе! И, опять же, FAR бесплатный, а TC хочет денег...
Если поддерживать заголовок размером 512 байтов только для файлов с расширением RD - такое вполне возможно.
Пока никто не сделал MFM-копию винчестера ДВК - эта опция подождёт.
Если у образа расширение DSK - эмулятор на лету переставляет сектора в том порядке, который нужен драйверу DW для ДВК. При любом другом расширении у файла образа - обслуживание образа идёт прозрачно и порядок секторов в образе зависит только от используемого драйвера.
WCX-интерфейс давно стал стандартом де-факто для плагинов. Плагины с WCX-интерфейсом это обычные DLL, поэтому они используются и в FAR, и даже в консольных утилитах.
13.03.2015 - Выложена дополненная версия плагина: RT-11dsk.wcx.v01.11
Изменения:
1. Поддерживаются файлы образов .RD винчестеров Pro350 с возможностью создания новых образов.
2. Теперь файлы с расширениями BIN и DAT всегда копируются как двоичные.
...