-
В DOS-11 в файловой системе (в отличии от XXDP) активней используются непрерывные файлы - по идее, ускоряется загрузка.
А у не непрерывных файлов (как и в XXDP) - интересная структура - первое слово блока файла - это номер следующего блока. То есть в каждом блоке всего 510 байт доступно пользователю.
Такое впечатление, что файловую систему MSDOS писали под впечатлением от DOS-11, но хоть догадались эту цепочку убрать из самого файла :)
Хотя, чему тут удивляться, если Windows NT проектировал Дэйв Катлер :) Возможно, разработчки того времени находились под сильным впечатлением от продуктов DEC :D Ну и как было не переманить архитектора из самого DEC :)
-
То, как пишется файловая система DOS-11 (а возможно и XXDP) на DT: (ака TU56) - это полный армаггедец. Учитывая, что TU56 (лента!) прикидывается устройством с блочным прямым доступом - что бы ускорить работу на нём - DEC реализовала возможность записи как в прямом направлении, так и в обратном, причём, записанное в обратном направлении надо и читать в обратном направлении, иначе слова (не байты!) будут идти с конца блока в его начало... И учитывая, что в DOS-11 (и в XXDP) есть понятие связанных (linked) файлов (это когда первое слово блока указывает номер следующего блока) - что бы подсказать, что следующий (который на ленте - предыдущий!) блок записан в обратном направлении (и читать его надо так) - номер следующего блока будет отрицательным (благо, блоков всего 576). Но пока это поймешь, читая доку... Позеленеть можно :D Плюс, в доке скромно так, со вкусом, для всех устройств характеристики ФС указаны десятичными числами, а вот для TU56 (Б!!!!) - восьмеричными. Не, DEC прямо жирным шрифтом указало, где десятчное, а где восьмеричное, но кто ж на эту грёбаную точку после числа обратил внимание... Так что перед тем как позеленеть - я успел посинеть :D
- - - Добавлено - - -
Зато теперь распаковщик принял и DT образы и даже правильно распаковал :)
Правда, функционл каталогов в файловой системе DOS-11 (в XXDP формально они тоже как бы есть - но используется только один каталог [1,1] - и его как бы нет - то есть XXDP его не кажет) ещё прога не разбирает (только первый, который обычно [1,1]), но.. лиха беда начало :)
Щас подсуну ещё DT образ от XXDP (если найду), посмотрю, что получится - и спааааать!!
- - - Добавлено - - -
Блин. DT-шный образ есть только от какой то типа первой версии XXDP и чего там и где - надо на свежую голову смотреть, но вроде как замечаны признаки обратной записи :(
-
Пока с образом первой версии XXDP не понятно. Знакомые места есть, картинка не складывается.
Занимательно про расположение блоков файла на DT:
Код:
# $VOLUM.INF - info about XXDP volume on TU56 device.
# Produced by XXDPFileSystem at 10-апр-2022 12:00:35
...
# File 0 SYSLOD.SYS (C) Data 15872/000037000 bytes, start block 1/000001 @ 0x200
# File 1 MONLIB.SYS Data 42496/000123000 bytes, start block 32/000040 @ 0x4000
32 36 40 44 48 52 69 73
77 81 85 89 93 97 101 105
109 113 117 121 125 129 133 137
141 145 149 153 157 161 165 169
173 177 181 185 189 193 197 201
205 204 200 196 192 188 184 180
176 172 168 164 160 156 152 148
144 140 136 132 128 124 120 116
112 108 104 100 96 92 88 84
80 76 72 55 51 47 43 39
35 37 41
Видно, что блоки сначала распологаются в прямом направлении, но после 204 направление меняется на обратное :) Ещё из занимательного - неинтерливный интерливинг - блоки идут через 4 - не всегда, но идея в том, что когда лента DT останавливается и стартует - то под головкой оказывается блок с номером +4 и изредка +5 от ранее прочитанного (и -4 или -5 при реверсе). Таким образом, если нужно прочитать следующий блок, то при таком выделении как раз есть хорошая (DEC в доках пишет - ОЧЕНЬ хорошая при правильной юстировке механики) вероятность, что это он и будет - ещё сокращается время доступа :)
В целом из серии - сначала мы создали себе проблемы, а потом успешно начали их преодолевать :) Ну учитывая, какой была тогда (это 1971 год!) комп техника и её стоимость.. Ну.. Не плохо, не плохо! :)
- - - Добавлено - - -
А, да, на следущем варианте этой лентопротяжке (TU58 ака DD) всех этих извратов не наблюдается :)
-
Уф... Прикол за прколом. Сижу я тут примерно с обеда (точнее - с утра, но плотно - с обеда) и туплю над образом диска DOS-11, снятым с RF11 (диск с фиксированными головками - всё что могу про него пока сказать). Вроде как есть знакомые места - а картинка не складывается. И вот минут 10-15 назад начинает нисходить на меня просветление.. Прикидываю, смотрю на данные, и...
ААААААААА, Б!, DOS-11 на RF11 работает с нативными блоками. А они у него, внезапно - 128 байт. Трындец.
Соотвественно - всю логику работы с блоками (в случае DOS-11 образов) нужно допиливать напильником с учётом этого. К сожалению, образов XXDP для этого диска не нашлось (или плохо искал) - пока сложно сказать - как оно тама будет - попробовать побаловаться под simh надо.
Из хорошего - пару-тройку дней назад подумалось мне, что всю работу с секторами нужно выносить из модулей работы с ФС.
Из плохого - понятно, что не всё в коде допилено в этом направлении.
Из хорошего - вот блин как же всё таки хорошо, что DEC не использует геометрию дисков в ФС (ну или я на это не налетал) - ибо ваще трындец бы был.
-
Два вечера плотно... И работа с образом на уровне блока. Образ диска RF c DOS-11 V09-20C, который по началу вынес мне мозги :)
Код:
# $VOLUM.INF - info about XXDP volume on RF11 device.
# Produced by XXDPFileSystem at 12-апр-2022 21:00:27
# Blocks on device
nblockcount=4096
prealloc_blocks_num=560
interleave=1
boot_block=0
monitor_block=10
# Master File Directory Var1: MFD1+MFD2
mfd1=1
mfd2=3
# Bitmap of used blocks:
bitmap_block_1=4
bitmaps_num=5
# User File Directory:
ufd_block_1=9
ufd_blocks_num=14
# File 0 BADB.SYS Data 128/000000200 bytes, start block 2/000002 @ 0x400
2
# File 1 MONLIB.CIL (C) Data 70400/000211400 bytes, start block 10/000012 @ 0x1400
# File 2 LINK.LDA Data 31616/000075600 bytes, start block 560/001060 @ 0x46000
560 561 562 563 564 565 566 567
......................
808 809
# File 3 PIP.LDA Data 15872/000037000 bytes, start block 810/001452 @ 0x65400
810 811 812 813 814 815 816 817
......................
930 931 932 933 934
# File 4 EDIT.LDA Data 6400/000014400 bytes, start block 1091/002103 @ 0x88600
1091 1092 1093 1094 1095 1096 1097 1098
......................
1139 1140
# File 5 MACRO.LDA Data 20352/000047600 bytes, start block 1258/002352 @ 0x9D400
1258 1259 1260 1261 1262 1263 1264 1265
......................
1418
# File 6 CREF.LDA Data 4864/000011400 bytes, start block 1419/002613 @ 0xB1600
1419 1420 1421 1422 1423 1424 1425 1426
......................
1451 1452 1453 1454 1455 1456
# File 7 SYSMAC.SML Data 13056/000031400 bytes, start block 1495/002727 @ 0xBAE00
1495 1496 1497 1498 1499 1500 1501 1502
......................
1591 1592 1593 1594 1595 1596 1597
# File 8 CL0.SYS Data 128/000000200 bytes, start block 1598/003076 @ 0xC7C00
1598
# File 9 CL1.SYS Data 128/000000200 bytes, start block 1600/003100 @ 0xC8000
1600
# File 10 CL2.SYS Data 128/000000200 bytes, start block 1601/003101 @ 0xC8200
1601
# File 11 CL3.SYS Data 256/000000400 bytes, start block 1602/003102 @ 0xC8400
1602 1603
# File 12 CL4.SYS Data 128/000000200 bytes, start block 1604/003104 @ 0xC8800
1604
# File 13 CL5.SYS Data 256/000000400 bytes, start block 1605/003105 @ 0xC8A00
1605 1606
# File 14 CL6.SYS Data 256/000000400 bytes, start block 1607/003107 @ 0xC8E00
1607 1608
# File 15 CL7.SYS Data 256/000000400 bytes, start block 1609/003111 @ 0xC9200
1609 1610
# File 16 LDUMP.LDA Data 14720/000034600 bytes, start block 1612/003114 @ 0xC9800
1612 1613 1614 1615 1616 1617 1618 1619
......................
1724 1725 1726 1727
# File 17 FORTRN.LDA Data 17408/000042000 bytes, start block 1728/003300 @ 0xD8000
1728 1729 1730 1731 1732 1733 1734 1735
......................
1864 1865
# File 18 FORCOM.DGN (C) Data 10752/000025000 bytes, start block 3540/006724 @ 0x1BA800
# File 19 FORRUN.DGN (C) Data 8192/000020000 bytes, start block 3476/006624 @ 0x1B2800
# File 20 TRCLIB.OBJ Data 5888/000013400 bytes, start block 1866/003512 @ 0xE9400
1866 1867 1868 1869 1870 1871 1872 1873
......................
1906 1907 1908 1909 1910 1911
# File 21 FTNLIB.OBJ Data 88192/000254200 bytes, start block 2565/005005 @ 0x140A00
2565 2566 2567 2568 2569 2570 2571 2572
......................
3262 3263 3264
# File 22 FORTRN.OVR (C) Data 60416/000166000 bytes, start block 3624/007050 @ 0x1C5000
Ежели мне не изменяет память, именно на ней я знакомился с програмированием на FORTRAN-IV и с компьютерами :) В принципе, программировать я начал примерно за два года с чем-то до этого - на Б3-34 :)
- - - Добавлено - - -
Ну что, Фортран в образе есть - можно вспомнить молодось :D
- - - Добавлено - - -
А, да, ещё из занимательного с этим образом - загрузочный блок у него - 128 байт :)
-
Вернулся к эмулятору TU56 и распаковщику образом. Между делом я его потихоньку причёсываю. После некоторых размешлений, решил всё таки сделать отдельными файловые системы XXDP и DOS-11 - несмотря на то, что по сути - одинаковые, некоторые отличия всё таки есть. Пока делаю вариант - основа - DOS-11, модифицированный вариант - XXDP. Посмотрим, насколько удачен этот вариант :)
-
Звездец :) Подложил себе с мультиконтроллером боНбу замедленного действа :) Из-за одного оператора, точнее его отсутствия (результат одной переделки, которую я потом в других модулях и PDP-2011 отменил, а вот в мультиконтроллере нет) - феерическая работа :) Из всего, что на нём было, с новой прошивкой работали только CF-ки, а практически всё остальное даже не откликалось :) Ну.. Поломав голову в выходные и сегодня вечером, до меня всё таки дошло - что не так. Так что теперь FALCON-ы попробую погонять в плане проверки работы с эмулятором TU58 на ненаплатном уарте. Не прям вот щаз, но теперь это стало реальней. А пока попробую посмотреть, как будет работать эмулятор TU58 на скорости 115200 и выше :)
- - - Добавлено - - -
Ну, в принципе, конечно, получше, но.. всё равно - так себе :) Попробую на большей скорости, но позже. Пока восстановлю полный функционал прошивки мультиконтроллера на обновлённых модулях :)
- - - Добавлено - - -
Ожидаемо - и это действительно ожидаемо :) нарушилась работа устройств с ПДП :) Но тут хоть понятно, что надо просто правильно подключить их к новому варианту корзины :) Завтра буду смотреть, что надо перекоммутировать :)
-
Начал добавлять поддержку (программного) интерлейса :) Пока проверено (проверяется) на распаковку и RT-11 - но уже неплохо, неплохо :)
-
RT-11, интерлив для RX01, RX02 и RX50, пока только в режиме - извлечение. Не скорректированы процедуры, которые пишут данные в образ. Но теперь, когда есть образец процедур чтения - это не сложно, но точно не сейчас :)
Ну и надо посмотреть на образы от XXDP.
Насколько я помню, ничего DOS-11 на таких дискетах у меня нет...
-
Из занимательного. Найдено на диске с исходниками RT
Код:
RT11SR.SYS 97. 1997-02-29
- - - Добавлено - - -
И там даже не один такой файл...
Код:
RT11SR.SYS 97. 1997-02-29
SBROL .CND 2. 1997-02-29
SBROL .ANS 6. 1997-02-29
SBROL .BLD 1. 1997-02-29
SBROL .MON 3. 1997-02-29
SBROL .DEV 2. 1997-02-29
SBROL .TBL 4. 1997-02-29
- - - Добавлено - - -
Код:
!SYSGEN Edit level = V05.14001
! SBROL.DEV Created 29-Feb-97 00:33:11
- - - Добавлено - - -
Имя COM1.COM - тоже неплохое :)