Вход

Просмотр полной версии : "MS-DOS" (ну.. не совсем конечно) на PDP-11 :)



Hunta
10.10.2023, 21:46
Операционка 1971 года :)


Connected to the PDP-11 simulator CON-TELNET device


MONITOR V004A

$DAT 10-OCT-99
$TIM 22:27
$LO 1,1
DATE:- 10-OCT-99
TIME:- 22:27:02
$
$RUN DT0:PIP



PIP-11 V005A

#DK0:<DT0:PIP.OBJ,LINKOB.OBJ,LINK11.OBJ


#DK0:<DT0:EDIT11.OBJ,LIBR11.OBJ,PALOB.OBJ


#DK0:<DT0:PALSYM.OBJ,PAL11R.OBJ,MODS.OBJ


#^C
.KI

$RUN DT0:LINKOB

$RUN DT0:LINK11




LINK-11 V007A

PASS 1
#LINKOB<LINKOB/T:157460/E

TRANSFER ADDRESS: 133230
LOW LIMIT: 133156
HIGH LIMIT: 157460

PASS 2







LINK-11 V007A

PASS 1
#LINK11<LINK11/T:157460/E

TRANSFER ADDRESS: 143532
LOW LIMIT: 141254
HIGH LIMIT: 157460

PASS 2







LINK-11 V007A

PASS 1
#^C
.KI

$RUN LINKOB

$RUN LINK11




LINK-11 V007A

PASS 1
#PIP<PIP.OBJ/CC/T:77474/E

TRANSFER ADDRESS: 061224
LOW LIMIT: 060436
HIGH LIMIT: 077474

PASS 2







LINK-11 V007A

PASS 1
#EDIT<EDIT11.OBJ/T:157460/E

TRANSFER ADDRESS: 145046
LOW LIMIT: 145046
HIGH LIMIT: 157460

PASS 2







LINK-11 V007A

PASS 1
#LIBR<LIBR11/T:157460/E

TRANSFER ADDRESS: 152276
LOW LIMIT: 150230
HIGH LIMIT: 157460

PASS 2







LINK-11 V007A

PASS 1
#PALOB<PALOB.OBJ/T:157460/E

TRANSFER ADDRESS: 132400
LOW LIMIT: 132336
HIGH LIMIT: 157460

PASS 2







LINK-11 V007A

PASS 1
#PAL<PALSYM.OBJ,PAL11R.OBJ/T:157460/E

TRANSFER ADDRESS: 147072
LOW LIMIT: 141574
HIGH LIMIT: 157460

PASS 2







LINK-11 V007A

PASS 1
#MODS<MODS.OBJ/T:157460/E

TRANSFER ADDRESS: 144116
LOW LIMIT: 144116
HIGH LIMIT: 157460

PASS 2







LINK-11 V007A

PASS 1
#^C
.KI

$RUN PIP



PIP-11 V005A

#/DI



DIRECTORY DK0: [1,1]

00-XXX-70

MONLIB 188C 00-XXX-70 <377>
PIP .OBJ 59 00-XXX-70 <233>
LINKOB.OBJ 38 00-XXX-70 <233>
LINK11.OBJ 23 00-XXX-70 <233>
EDIT11.OBJ 21 00-XXX-70 <233>
LIBR11.OBJ 13 00-XXX-70 <233>
PALOB .OBJ 34 00-XXX-70 <233>
PALSYM.OBJ 4 00-XXX-70 <233>
PAL11R.OBJ 19 00-XXX-70 <233>
MODS .OBJ 10 00-XXX-70 <233>
LINK11.OVR 18C 00-XXX-70 <233>
LINKOB.LDA 27 00-XXX-70 <233>
LINK11.LDA 16 00-XXX-70 <233>
PIP .LDA 19 00-XXX-70 <233>
EDIT .LDA 14 00-XXX-70 <233>
LIBR .LDA 9 00-XXX-70 <233>
PALOB .LDA 27 00-XXX-70 <233>
PAL .LDA 17 00-XXX-70 <233>
MODS .LDA 8 00-XXX-70 <233>

TOTL BLKS: 564
TOTL FILES: 19






#^C
.KI

$RUN PIP



PIP-11 V005A

#/DI



DIRECTORY DK0: [1,1]

00-XXX-70

MONLIB 188C 00-XXX-70 <377>
PIP .OBJ 59 00-XXX-70 <233>
LINKOB.OBJ 38 00-XXX-70 <233>
LINK11.OBJ 23 00-XXX-70 <233>
EDIT11.OBJ 21 00-XXX-70 <233>
LIBR11.OBJ 13 00-XXX-70 <233>
PALOB .OBJ 34 00-XXX-70 <233>
PALSYM.OBJ 4 00-XXX-70 <233>
PAL11R.OBJ 19 00-XXX-70 <233>
MODS .OBJ 10 00-XXX-70 <233>
LINK11.OVR 18C 00-XXX-70 <233>
LINKOB.LDA 27 00-XXX-70 <233>
LINK11.LDA 16 00-XXX-70 <233>
PIP .LDA 19 00-XXX-70 <233>
EDIT .LDA 14 00-XXX-70 <233>
LIBR .LDA 9 00-XXX-70 <233>
PALOB .LDA 27 00-XXX-70 <233>
PAL .LDA 17 00-XXX-70 <233>
MODS .LDA 8 00-XXX-70 <233>

TOTL BLKS: 564
TOTL FILES: 19






#^C
.KI

$RUN LINK11




LINK-11 V007A

PASS 1
#LINK<LINK11/T:157460/E

TRANSFER ADDRESS: 143532
LOW LIMIT: 141254
HIGH LIMIT: 157460

PASS 2







LINK-11 V007A

PASS 1
#^C
.KI

$RU PIP



PIP-11 V005A

#/DI



DIRECTORY DK0: [1,1]

00-XXX-70

MONLIB 188C 00-XXX-70 <377>
PIP .OBJ 59 00-XXX-70 <233>
LINKOB.OBJ 38 00-XXX-70 <233>
LINK11.OBJ 23 00-XXX-70 <233>
EDIT11.OBJ 21 00-XXX-70 <233>
LIBR11.OBJ 13 00-XXX-70 <233>
PALOB .OBJ 34 00-XXX-70 <233>
PALSYM.OBJ 4 00-XXX-70 <233>
PAL11R.OBJ 19 00-XXX-70 <233>
MODS .OBJ 10 00-XXX-70 <233>
LINK11.OVR 18C 00-XXX-70 <233>
LINKOB.LDA 27 00-XXX-70 <233>
LINK11.LDA 16 00-XXX-70 <233>
PIP .LDA 19 00-XXX-70 <233>
EDIT .LDA 14 00-XXX-70 <233>
LIBR .LDA 9 00-XXX-70 <233>
PALOB .LDA 27 00-XXX-70 <233>
PAL .LDA 17 00-XXX-70 <233>
MODS .LDA 8 00-XXX-70 <233>
LINK .LDA 16 00-XXX-70 <233>

TOTL BLKS: 580
TOTL FILES: 20






#^C
.KI

$RUN PIP



PIP-11 V005A

#/DI



DIRECTORY DK0: [1,1]

00-XXX-70

MONLIB 188C 00-XXX-70 <377>
PIP .OBJ 59 00-XXX-70 <233>
LINKOB.OBJ 38 00-XXX-70 <233>
LINK11.OBJ 23 00-XXX-70 <233>
EDIT11.OBJ 21 00-XXX-70 <233>
LIBR11.OBJ 13 00-XXX-70 <233>
PALOB .OBJ 34 00-XXX-70 <233>
PALSYM.OBJ 4 00-XXX-70 <233>
PAL11R.OBJ 19 00-XXX-70 <233>
MODS .OBJ 10 00-XXX-70 <233>
LINK11.OVR 18C 00-XXX-70 <233>
LINKOB.LDA 27 00-XXX-70 <233>
LINK11.LDA 16 00-XXX-70 <233>
PIP .LDA 19 00-XXX-70 <233>
EDIT .LDA 14 00-XXX-70 <233>
LIBR .LDA 9 00-XXX-70 <233>
PALOB .LDA 27 00-XXX-70 <233>
PAL .LDA 17 00-XXX-70 <233>
MODS .LDA 8 00-XXX-70 <233>
LINK .LDA 16 00-XXX-70 <233>

TOTL BLKS: 580
TOTL FILES: 20






#LINK11.OVR/DE,LINKOB.LDA,LINK11.LDA


#/DI



DIRECTORY DK0: [1,1]

00-XXX-70

MONLIB 188C 00-XXX-70 <377>
PIP .OBJ 59 00-XXX-70 <233>
LINKOB.OBJ 38 00-XXX-70 <233>
LINK11.OBJ 23 00-XXX-70 <233>
EDIT11.OBJ 21 00-XXX-70 <233>
LIBR11.OBJ 13 00-XXX-70 <233>
PALOB .OBJ 34 00-XXX-70 <233>
PALSYM.OBJ 4 00-XXX-70 <233>
PAL11R.OBJ 19 00-XXX-70 <233>
MODS .OBJ 10 00-XXX-70 <233>
PIP .LDA 19 00-XXX-70 <233>
EDIT .LDA 14 00-XXX-70 <233>
LIBR .LDA 9 00-XXX-70 <233>
PALOB .LDA 27 00-XXX-70 <233>
PAL .LDA 17 00-XXX-70 <233>
MODS .LDA 8 00-XXX-70 <233>
LINK .LDA 16 00-XXX-70 <233>

TOTL BLKS: 519
TOTL FILES: 17






#LINK.LDA/DE


#/DI



DIRECTORY DK0: [1,1]

00-XXX-70

MONLIB 188C 00-XXX-70 <377>
PIP .OBJ 59 00-XXX-70 <233>
LINKOB.OBJ 38 00-XXX-70 <233>
LINK11.OBJ 23 00-XXX-70 <233>
EDIT11.OBJ 21 00-XXX-70 <233>
LIBR11.OBJ 13 00-XXX-70 <233>
PALOB .OBJ 34 00-XXX-70 <233>
PALSYM.OBJ 4 00-XXX-70 <233>
PAL11R.OBJ 19 00-XXX-70 <233>
MODS .OBJ 10 00-XXX-70 <233>
PIP .LDA 19 00-XXX-70 <233>
EDIT .LDA 14 00-XXX-70 <233>
LIBR .LDA 9 00-XXX-70 <233>
PALOB .LDA 27 00-XXX-70 <233>
PAL .LDA 17 00-XXX-70 <233>
MODS .LDA 8 00-XXX-70 <233>

TOTL BLKS: 503
TOTL FILES: 16






#^C
.KI

$RUN DT0:LINKOB

$RUN DT0:LINK11




LINK-11 V007A

PASS 1
#LINKOB<LINKOB/T:157460/E

TRANSFER ADDRESS: 133230
LOW LIMIT: 133156
HIGH LIMIT: 157460

PASS 2







LINK-11 V007A

PASS 1
#LINK<LINK11/T:157460/E

TRANSFER ADDRESS: 143532
LOW LIMIT: 141254
HIGH LIMIT: 157460

PASS 2







LINK-11 V007A

PASS 1
#^C
.KI

$RUN LINKOB

$RUN LINK




LINK-11 V007A

PASS 1
#^C
.KI

$RUN PIP



PIP-11 V005A

#/DI



DIRECTORY DK0: [1,1]

00-XXX-70

MONLIB 188C 00-XXX-70 <377>
PIP .OBJ 59 00-XXX-70 <233>
LINKOB.OBJ 38 00-XXX-70 <233>
LINK11.OBJ 23 00-XXX-70 <233>
EDIT11.OBJ 21 00-XXX-70 <233>
LIBR11.OBJ 13 00-XXX-70 <233>
PALOB .OBJ 34 00-XXX-70 <233>
PALSYM.OBJ 4 00-XXX-70 <233>
PAL11R.OBJ 19 00-XXX-70 <233>
MODS .OBJ 10 00-XXX-70 <233>
LINK11.OVR 18C 00-XXX-70 <233>
LINKOB.LDA 27 00-XXX-70 <233>
LINK .LDA 16 00-XXX-70 <233>
PIP .LDA 19 00-XXX-70 <233>
EDIT .LDA 14 00-XXX-70 <233>
LIBR .LDA 9 00-XXX-70 <233>
PALOB .LDA 27 00-XXX-70 <233>
PAL .LDA 17 00-XXX-70 <233>
MODS .LDA 8 00-XXX-70 <233>

TOTL BLKS: 564
TOTL FILES: 19






#DK0:<DT0:ODT11R.OBJ,PALSYM.PAL


#^C
.KI

$RUN PALOB

$RUN PIP



PIP-11 V005A

#/DI



DIRECTORY DK0: [1,1]

00-XXX-70

MONLIB 188C 00-XXX-70 <377>
PIP .OBJ 59 00-XXX-70 <233>
LINKOB.OBJ 38 00-XXX-70 <233>
LINK11.OBJ 23 00-XXX-70 <233>
EDIT11.OBJ 21 00-XXX-70 <233>
LIBR11.OBJ 13 00-XXX-70 <233>
PALOB .OBJ 34 00-XXX-70 <233>
PALSYM.OBJ 4 00-XXX-70 <233>
PAL11R.OBJ 19 00-XXX-70 <233>
MODS .OBJ 10 00-XXX-70 <233>
LINK11.OVR 18C 00-XXX-70 <233>
LINKOB.LDA 27 00-XXX-70 <233>
LINK .LDA 16 00-XXX-70 <233>
PIP .LDA 19 00-XXX-70 <233>
EDIT .LDA 14 00-XXX-70 <233>
LIBR .LDA 9 00-XXX-70 <233>
PALOB .LDA 27 00-XXX-70 <233>
PAL .LDA 17 00-XXX-70 <233>
MODS .LDA 8 00-XXX-70 <233>
ODT11R.OBJ 13 00-XXX-70 <233>
PALSYM.PAL 21 00-XXX-70 <233>
PAL11R.OVR 10C 00-XXX-70 <233>

TOTL BLKS: 608
TOTL FILES: 22






#^C
.KI

$RUN PAL

PAL11R V005A

#PALSYM<PALSYM





END

000000 ERRORS



#^C
.KI

$RUN PIP



PIP-11 V005A

#/DI



DIRECTORY DK0: [1,1]

00-XXX-70

MONLIB 188C 00-XXX-70 <377>
PIP .OBJ 59 00-XXX-70 <233>
LINKOB.OBJ 38 00-XXX-70 <233>
LINK11.OBJ 23 00-XXX-70 <233>
EDIT11.OBJ 21 00-XXX-70 <233>
LIBR11.OBJ 13 00-XXX-70 <233>
PALOB .OBJ 34 00-XXX-70 <233>
PALSYM.OBJ 5 00-XXX-70 <233>
PAL11R.OBJ 19 00-XXX-70 <233>
MODS .OBJ 10 00-XXX-70 <233>
LINK11.OVR 18C 00-XXX-70 <233>
LINKOB.LDA 27 00-XXX-70 <233>
LINK .LDA 16 00-XXX-70 <233>
PIP .LDA 19 00-XXX-70 <233>
EDIT .LDA 14 00-XXX-70 <233>
LIBR .LDA 9 00-XXX-70 <233>
PALOB .LDA 27 00-XXX-70 <233>
PAL .LDA 17 00-XXX-70 <233>
MODS .LDA 8 00-XXX-70 <233>
ODT11R.OBJ 13 00-XXX-70 <233>
PALSYM.PAL 21 00-XXX-70 <233>
PAL11R.OVR 10C 00-XXX-70 <233>

TOTL BLKS: 609
TOTL FILES: 22






#^C
.KI

$FI
TIME:- 22:36:05

MONITOR V004A

$

Connected to the PDP-11 simulator CON-TELNET device


MONITOR V004A

$DAT 10-OCT-99
$TIM 22:39
$LO 1,1
DATE:- 10-OCT-99
TIME:- 22:39:01
$
$RUN PIP



PIP-11 V005A

#/DI



DIRECTORY DK0: [1,1]

00-XXX-70

MONLIB 188C 00-XXX-70 <377>
PIP .OBJ 59 00-XXX-70 <233>
LINKOB.OBJ 38 00-XXX-70 <233>
LINK11.OBJ 23 00-XXX-70 <233>
EDIT11.OBJ 21 00-XXX-70 <233>
LIBR11.OBJ 13 00-XXX-70 <233>
PALOB .OBJ 34 00-XXX-70 <233>
PALSYM.OBJ 5 00-XXX-70 <233>
PAL11R.OBJ 19 00-XXX-70 <233>
MODS .OBJ 10 00-XXX-70 <233>
LINK11.OVR 18C 00-XXX-70 <233>
LINKOB.LDA 27 00-XXX-70 <233>
LINK .LDA 16 00-XXX-70 <233>
PIP .LDA 19 00-XXX-70 <233>
EDIT .LDA 14 00-XXX-70 <233>
LIBR .LDA 9 00-XXX-70 <233>
PALOB .LDA 27 00-XXX-70 <233>
PAL .LDA 17 00-XXX-70 <233>
MODS .LDA 8 00-XXX-70 <233>
ODT11R.OBJ 13 00-XXX-70 <233>
PALSYM.PAL 21 00-XXX-70 <233>
PAL11R.OVR 10C 00-XXX-70 <233>

TOTL BLKS: 609
TOTL FILES: 22






#^C
.KI

$FI
TIME:- 22:39:10

MONITOR V004A

$

bigral
19.10.2023, 17:14
DOS-11? https://en.wikipedia.org/wiki/DEC_BATCH-11/DOS-11
прапрадедушка RSX

Hunta
19.10.2023, 17:40
Операционка, с которой я начинал (только версия более поздняя) свою любовь к PDP-11 на основе СМ-3 :)


прапрадедушка RSX
Нуууу... я бы поспорил на эту тему :)

Hunta
11.12.2023, 11:23
Ещё из "археологических" раскопок:


...
SUBJECT: PDP-11 DISK MONITOR FUNCTIONAL SPECIFICATION

FROM: HARLAN SHEPARDSON DATE: DECEMBER 1, 1970
ROGER WILLIS
...
0.1.1 TITLE

PDP-11 DISK MONITOR FUNCTIONAL SPECIFICATION, VERSION 3,
DECEMBER 1, 1970

Несколько непонятно - это имеется ввиду версия 3 самой спецификации или спецификация для DOS-11 v3? Самая ранняя версия DOS-11 (которая у меня есть) - V004A (первое сообщение в теме), так что может быть и про версию Dos. В исходниках драйверов ещё встречал упоминание пятой версии.

Conan
11.12.2023, 12:18
Несколько непонятно - это имеется ввиду версия 3 самой спецификации или спецификация для DOS-11 v3?Обозначено как третья версия FS. Но в проектной методологии того времени версия функциональной спецификации линковалась с версией продукта, ибо это последовательные этапы разработки. Спецификая v3 -> DOS11 v3

Hunta
30.01.2024, 13:59
Нашлась бОльшая часть исходников для V09-19 - из девяти "дисков" - один отсутствует, а два имеют проблемы с чтением или декодированием. "Диски" - на самом деле - ленты (ленточный накопитель DEC TU56), которые прикидываются дисками - и в силу некоторых причин с них читали сырые данные, которые потом скриптом раскодируются. Пока не понятно - всё таки проблема с чтением (хотя написано - прочитано без ошибок) или декодированием. Потом, как-нибудь, повожусь с сырыми данными и скриптами (питон) - вдруг получится понять причину.

Для меня сейчас главное - есть исходники утилиты CILUS (работа с образом системы в формате CIL и LICIL), так что можно понять тонкости формата и сделать вариант - или под RT-11 или вообще под PC. А потом написать драйвер для HD, первичный загрузчик (они у DOS-11 входят в состав CILUS) и загрузиться под эмулятором Патрона :) Так же в планах - реализовать создание образов для DOS-11 - теперь и с возможность выполнения аналога команда COPY/BOOY (в DOS-11 оно выполняется немного по другому оп сравнению с RT-11 - но идеи похожие)

И благодаря наличию исходников с комментариями будет проще дизассемблировать разное от других верися DOS-11. Но это уже долгосрочные планы

Hunta
10.02.2024, 12:02
Практически довёл до конца (осталось четыре первичных загрузчика, но они небольшие) своё любимое дело - переделка кода под DSMAC. Из впечатлений - написано достаточно неплохо, кода АЛяСпагетти мало, причём некоторые из кусков, которые на первый взгляд казались таковыми - в DSMAC убрались в совершенно прозрачную логику. Думаю, не меньше половины меток удалились (скорее всего больше) плюс ещё некоторое количество удалиться после переделки некоторых повторяющихся участков в макросы. Ну и плюс получил дополнительную информацию о строении CIL, а так же теперь есть информация и о строение LICIL. Вообще - интересная реализация монитора с перекрытиями - причём, в отличии от, скажем RT-11, где по сути всего три основных перекрытия, которые может подгрузить резидент монитора, в DOS-11 их ДОХРЕНА и можно добавлять новые или заменять существующие в CIL/LICIL как в библиотеке :)

Технически, уже ничто не мешает нарисовать первичный загрузчик с HD и добавить его в CILUS. Затем можно будет нарисовать драйвер HD для DOS-11.

И вот тут сразу рисуются две проблемы:

- как этот код или исходники затащить в DOS-11 - после некоторых размышлений решил, что проще всего будет сделать через ленту - благо её формат в DOS-11 гораздо проще дисковой ФС плюс некоторое время назад я начал добавлять поддержку лент в ImageUtils (нацеленнность была другая) - дорисовать поддержку плюс сделать создание образов лент в формате DOS-11

- разборка - как драйвер устройства добавить в систему - теоретически представляю себе, практически - никогда не делал.

Hunta
10.02.2024, 17:26
Первичная конвертация закончена. Теперь немного предварительных доделок в ImageUtils...