-
Половину исходника самого монитора (драйвер RK11 был с самого начала вырезан в отдельный файл) прошерстил. Замедляет, конечно, набор комментариев из листинга, но зато всё достаточно понятным становится. Ну и крайне круто, что в исходнике есть символьные имена для всяких смещений в структуре-описателе драйвера. Но до взаимодействя с драйвером пока не добрался, оно где то там дальше - и там есть ещё некоторое количество вопросов.
Из приятного - в UPD2 есть приличное количество аналогичного кода, плюс в него прилинкованы драйвера - теперь, представляя их структура и описатели - можно будет вырезать в отдельные файлы - проще будет возится с ядром самого UPD2
-
Уф... С монитором почти всё. Некоторые шерховатости подчистить и можно будет добивать драйвер. Малость ошибся с тем, где проходит граница, но зато системные таблицы стали понятны.
Ещё доделать драйвер RK11 (чистка кода, логика) - но он ЗНАЧИТЕЛЬНО :) меньше монитора, вполне возможно, что завтра вечером всё закончу с первым монитором XXDP :) Потом, скорее всего, попробую дизассемблировать RLDP (XXDP для RL11) - поскольку логику работы с устройством малость представляю и что бы сравнить - насколько всё совпадает с RKDP и можно будет вернуться к UPD2 :)
-
Прошерстил монитор, причесал драйвер RK11, немного прокомментировал. Завтра ещё раз гляну и, возможно, если косяков не найду - выложу.
Посмотрев на исходники и вспомнив, что в более ранних мониторах .EVEN давал, при необходимости, .BYTE 0, а в более поздних (опять же - при необходимости) - .BLKB 1, предположил, что это особенности разных версия ассемблера. Более ранние вставляли 0, более поздние - .BLKB. В принципе, второй вариант получше, так как .BLKB пропускается в .LDA файлах - то есть там вообще ничего грузится не будет. Правда, есть некоторые нюансы, но.. В среднем - файл будет меньше по размеру :)
-
Добавил в первое сообщение ссылку на каталог с восстановленными исходниками.
-
UPD2. В процессе. В том числе - разрезке монолита.
Выделил (вроде весь) драйвер RK11. В составе UPD2 ещё драйвера DT, DP, DB, DS, DX и DM. Это из дисков.
Есть ещё ленты, но там я пока со структурой драйвера-данных не знаком. Из хороших новостей - пример-листинг монитора XXDP, который я использовал для раскрутки монитора RKDP - как раз про какое-то лентопротяжное устройство.
Так что вполне возможно, что дойдя до какой то точки с UPD2 - прервусь, раскручу монитор под ленту (скорее всего - под MT возьму, ибо с этой лентопротяжкой более-менее знаком), а потом вернусь дальше копать UPD2
По объёму UPD2 примерно в два раза больше мониторов (если считать по количеству строк сразу после DisAsm-а), так что копать-не перекопать :)
-
Первоначальная разрезка UPD2 закончена. Выделены драйвера устройств. У дисковых драйверов есть общий код (работа с ФС) и драйверов лентопротяжек есть общий код (тоже работа с ФС). В этом плане особняком стоит драйвер CT: (кассетная лентопротяжка). По структуре - драйвер лентопротяжек, но работа с ФС - своя.
Собственно, из-за CT весь этот бардак и был затеян - началось всё с UPD2, но затем понял, что на драйверах сяду и тут вспомнил про восстановленный исходник XXDP+ DL монитора :) Ну, а дальше под раздачу попали остальные мониторы XXDP+, монитор XXDP RK (поскольку UPD2 от него) ну и сам UPD2 пострадал :)
Прическа кода и, местами, комменты на него :)
-
Развлекаюсь с CT (ака TA-11).
Пока ничего экзотического (за исключением того, что для работы с файлами другие лентопротяжки используют общие процедуры, а у CT свои).
Из замеченного - есть общие с монитором RKDP процедуры, которые ПОЧТИ аналогичны. То есть большую часть кода беру из разобранного RKDP, но надо слегка напильничком пройтись. А значит, такие процедуры не были выделены отдельными модулями. Не скажу, как там в DOS-11 (подозреваю, что если соберусь восстанавливать исходники, то тоже найду много ПОЧТИ похожего кода), но в более поздних системах (точнее в исходниках, до которых добирались руки) (а если ещё точнее, то в RT-11 и RSX-11) было уже больше идентичных МОДУЛЕЙ.
-
Хм.. Теперь стало понятно, почему у CT свой модуль работы с файлами. В случае CT XXDP использует файловую систему от CAPS-11 :)
И я как бы даже уже на это налетел, только не дошло :)
Ок, тоже неплохо - так как от CAPS-11 есть почти всё исходники :)
-
До конца логику понял не всю, но большую часть, в драйвере TA-11.
И понял где первый затык и поправил (в simh). И налетел на вторую проблему, пусть уже и не затык :)
Код:
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 0
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)
TYPE:
F<CR> TO SET CONSOLE FILL COUNT
D<CR> FOR DIRECTORY ON CONSOLE, OR
D/F<CR> FOR SHORT DIRECTORY ON CONSOLE, OR
D/L<CR> FOR DIRECTORY ON LINE PRINTER, OR
D/L/F<CR> FOR SHORT DIRECTORY ON LINE PRINTER,
R COPY<CR> TO RUN COPY PROGRAM,
R FILENAME<CR> TO RUN ANY OTHER PROGRAM.
L FILENAME<CR> TO LOAD A PROGRAM ONLY
S<CR> TO START THE PROGRAM JUST LOADED,
S ADDR<CR> TO START THE PROGRAM AT SPECIFIC ADDRESS
C FILENAME<CR> TO RUN A CHAIN,
C FILENAME/QV<CR> TO RUN A CHAIN IN QUICK VERIFY MODE.
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.R UPD2
DZQUB-I 21-JUL-76 - XXDP UPDATE PROGRAM #2
DATE: 26-JAN-99
26-JAN-99
PROGRAM RELOCATED TO: 120764
RESTART: 125116
*ZERO CT0:
*LOAD DK0:TADP.BIN
XFR:000001 CORE:000000,020000
*SAVE CT0:TADP.BIN
OUT DEVERR
*DIR CT0:
26-JAN-99
ENTRY# FILNAM.EXT DATE
000001 TADP .BIN 26-JAN-99C
*
DZQUE-F 21-JUL-76 TADP - XXDP TA11 MONITOR 28K
RESTART ADDR:152276
BOOTED VIA UNIT#: 0
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)
TYPE:
F<CR> TO SET CONSOLE FILL COUNT
D<CR> FOR DIRECTORY ON CONSOLE, OR
D/F<CR> FOR SHORT DIRECTORY ON CONSOLE, OR
D/L<CR> FOR DIRECTORY ON LINE PRINTER, OR
D/L/F<CR> FOR SHORT DIRECTORY ON LINE PRINTER,
R COPY<CR> TO RUN COPY PROGRAM,
R FILENAME<CR> TO RUN ANY OTHER PROGRAM.
L FILENAME<CR> TO LOAD A PROGRAM ONLY
S<CR> TO START THE PROGRAM JUST LOADED,
S ADDR<CR> TO START THE PROGRAM AT SPECIFIC ADDRESS
C FILENAME<CR> TO RUN A CHAIN,
C FILENAME/QV<CR> TO RUN A CHAIN IN QUICK VERIFY MODE.
E 0<CR> TO OPERATE OFF DRIVE 0,
E 1<CR> TO OPERATE OFF DRIVE 1.
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.
-
Значительно лучше :)
Код:
Connected to the PDP-11 simulator CON-TELNET device
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 0
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)
TYPE:
F<CR> TO SET CONSOLE FILL COUNT
D<CR> FOR DIRECTORY ON CONSOLE, OR
D/F<CR> FOR SHORT DIRECTORY ON CONSOLE, OR
D/L<CR> FOR DIRECTORY ON LINE PRINTER, OR
D/L/F<CR> FOR SHORT DIRECTORY ON LINE PRINTER,
R COPY<CR> TO RUN COPY PROGRAM,
R FILENAME<CR> TO RUN ANY OTHER PROGRAM.
L FILENAME<CR> TO LOAD A PROGRAM ONLY
S<CR> TO START THE PROGRAM JUST LOADED,
S ADDR<CR> TO START THE PROGRAM AT SPECIFIC ADDRESS
C FILENAME<CR> TO RUN A CHAIN,
C FILENAME/QV<CR> TO RUN A CHAIN IN QUICK VERIFY MODE.
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.R UPD2
DZQUB-I 21-JUL-76 - XXDP UPDATE PROGRAM #2
DATE: 27-JUN-99
27-JUN-99
PROGRAM RELOCATED TO: 120764
RESTART: 125116
*ZERO CT0:
*LOAD DK0:TADP.BIN
XFR:000001 CORE:000000,020000
*SAVE CT0:TADP.BIN
*FILE CT0:=DK0:UPD2.BIN
*FILE CT0:=DK0:ZTAA??.*
ZTAAC0.BIN
*DIR CT0:
27-JUN-99
ENTRY# FILNAM.EXT DATE
000001 TADP .BIN 27-JUN-99C
000002 UPD2 .BIN 16-AUG-76
000003 ZTAAC0.BIN 11-AUG-76
*BOOT CT0:
DZQUE-F 21-JUL-76 TADP - XXDP TA11 MONITOR 28K
RESTART ADDR:152276
BOOTED VIA UNIT#: 0
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)
TYPE:
F<CR> TO SET CONSOLE FILL COUNT
D<CR> FOR DIRECTORY ON CONSOLE, OR
D/F<CR> FOR SHORT DIRECTORY ON CONSOLE, OR
D/L<CR> FOR DIRECTORY ON LINE PRINTER, OR
D/L/F<CR> FOR SHORT DIRECTORY ON LINE PRINTER,
R COPY<CR> TO RUN COPY PROGRAM,
R FILENAME<CR> TO RUN ANY OTHER PROGRAM.
L FILENAME<CR> TO LOAD A PROGRAM ONLY
S<CR> TO START THE PROGRAM JUST LOADED,
S ADDR<CR> TO START THE PROGRAM AT SPECIFIC ADDRESS
C FILENAME<CR> TO RUN A CHAIN,
C FILENAME/QV<CR> TO RUN A CHAIN IN QUICK VERIFY MODE.
E 0<CR> TO OPERATE OFF DRIVE 0,
E 1<CR> TO OPERATE OFF DRIVE 1.
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.R UPD2
DZQUB-I 21-JUL-76 - XXDP UPDATE PROGRAM #2
DATE: 27-JUN-99
27-JUN-99
PROGRAM RELOCATED TO: 120764
RESTART: 125116
*DIR CT0:
27-JUN-99
ENTRY# FILNAM.EXT DATE
000001 TADP .BIN 27-JUN-99C
000002 UPD2 .BIN 16-AUG-76
000003 ZTAAC0.BIN 11-AUG-76
*
Код:
Connected to the PDP-11 simulator CON-TELNET device
CAPS-11 V01-02
.DATE 27-JUN-99
.VER
CAPS-11 V01-02
27-JUN-99
.DIR CT0:
27-JUN-99
CTLOAD SYS 08-AUG-73
CAPS11 S8K 09-AUG-73
PIP SRU 09-AUG-73
EDIT SLG 09-AUG-73
LINK SRU 09-AUG-73
ODT SLG 09-AUG-73
PAL SRU 09-AUG-73
DEMO PAL 09-AUG-73
.ZERO CT1:
.RU PIP
*CT1:=CT0:
*^C
.DIR CT1:
27-JUN-99
CTLOAD SYS 08-AUG-73
CAPS11 S8K 09-AUG-73
PIP SRU 09-AUG-73
EDIT SLG 09-AUG-73
LINK SRU 09-AUG-73
ODT SLG 09-AUG-73
PAL SRU 09-AUG-73
DEMO PAL 09-AUG-73
.