-
Как теперь выглядит окно DisAsm-11 сразу после запуска
Сделал столбец ссылок. Потом взгляд упал на... и я понял, что есть ещё поля для ввода меток и комментариев (четный и нечётный байты слова) :) С ними долго провозился - пока восстановил синхронизацию изменений аж в трёх местах..
Могу, конечно, опять про что-то забыть - но вроде только генератор исходника осталось переделать.
И надо бы какой-нибудь ещё проц - не двухкомандный добавить - что бы проверить - насколько работоспособны изменения (для PDP-11, понятно, проверил_
Так что сейчас определённая часть интерфейса отрисовывается, когда... есть что рисовать :)
-
Уже засыпал, когда пришло в голову - как можно проверить, хотя бы визуальную часть для не двухорперандного и недвухбайтнословного процессора
Как выглядит окно DisAsm-11 для пятиоперандного трёхбайтнасловного "PDP-11" :)
И да - несколько неудалённых зависимостей таки нашлось :)
- - - Добавлено - - -
Написал, показал, а потом неожиданно задумался - а почему только четыре окна слева :) Буду проверять - по идее, должно быть пять :)
- - - Добавлено - - -
Посмотрел исходники - ну, в принципе понятно. Константа по смыслу означала - максимальное количество операндов - а по факту - количество окон дизасма :) То есть по факту всё ок, а по смыслу.. Это исправить лехко :)
-
-
После многочисленных перетряхиваний внутренностей DisAsm (что ещё не закончено) были сделаны подвижки и в работе с перекрытиями - начато опробование механизма работы с ссылками не только в пределах родного перекрытия, но и в другие. Механизм, который выглядит простым и логичным - ищём ячейку по адресу ещё и вниз по дереву перекрытий до корня, а так же в других корневых перекрытиях.
Первые результаты
И вот тут я налетел на факт, что я мало знаю о многопользовательских .TSK из RSX.
Напоминание о том, что это такое - это программа, в которой компоновщик собрал две больших части - read-write секции (RW) и read-only секции (RO). И RO часть оформлена наподобие современных dll библиотек, но
- она "встроена" в программу, а не хранится отдельным файлом
- при первом запуске создается область памяти, куда грузится эта секция
- для RW секции запускаемых первого и последующих экземпляров программ для виртуального адресного пространства программы создаётся окно-отображение на эту область памяти (с доступом только на чтение!)
- эта область памяти остаётся в физической памяти до тех пор пока а) есть хоть один запущенный экземпляр программы и б) системе не требуется память для выделения чего то, а свободной памяти нужного размера нет. Причём в случае б система данную область памяти не выгружает, а просто освобождает. А как только эта RO секция опять нужна - она подгружается из .TSK файла
И вот в EDT.TSK это RO часть, если судить по данным в описании этого перекрытия (а оформляется оно как перекрытие) оказалась (значительно!) больше окна, через которое она будет отображаться :eek:
Код:
Task name : ...EDT
Partition name : GEN
Identification : V03.20
Task UIC : [1,24]
Task priority : 65.
Stack limits: 000256 001255 001000 00512.
PRG xfr address: 123470
Task attributes: CP,-FP,MU
Total address windows: 4.
Task image size : 8096. words
Task address limits: 000000 117777
R-W disk blk limits: 000002 000041 000040 00032.
R-O disk blk limits: 000042 000334 000273 00187. <--- ???? это о размещении в файле образа
......
*** Root segment: ROOT
R/W mem limits: 000000 037421 037422 16146.
R-O mem limits: 120000 172777 053000 22016. <--- размеры окна
Disk blk limits: 000002 000041 000040 00032.
Ну и поскольку обнаружилось это в процессе доработок-отладок поздно ночью - я решил - утро вечера (и ночи) мудреннее и пошёл спать :) Детектив продолжается...
- - - Добавлено - - -
Вдогонку. Нужно ещё продумать механизм генерации меток, на которые идёт ссылка из других перекрытий. Потому как они получаются а) ака глобальные символы и б) существующий алгоритм будет приводить к (потенциальной) генерации одинаковых меток для перекрытий, загружаемых с одного адреса
-
Вроде бы нашёл правильно число. По крайне мере - внешний вид сразу после загрузки у разных вариантов EDT похожий. Придётся лезть в исходники TKB для окончательного прояснения - что же эти числа значат...
-
Первый подход к снаряду межоверлейных ссылок
Пока проверка концепии и прояснение нюансов. Нууу... концпция вроде рабочая :) Осталось только сделать вначале оверлея список .GLOBL и.. есть мысль по поводу формата меток :)
-
Ранее недописанное.
Формат межоверлейных меток в первом приближении сделан, но .GLOBAL на них ещё не выставляется - позже как-нибудь, всё равно ещё оверлеи RSX не готовы к трансляции и уже тем более к сборке программы.
По дизасму CIL и LCL файлов от DOS-11
Сам по себе парсер CIL файлов написан, теперь надо правильно проставить ссылки и выполнить первый проход анализа по модулям. Сделал модули из CIL файлов как оверлеи, где в качестве корневого модуля выступает инфа из каталога CIL файла. Первая доработка концепции оверлеев DisAsm не только под оверлеи RSX, но и под другой вариант оверлеев.
Как будет более менее приличный результат, выложу картинку :)
-
Парсер вроде ОК, но вот межоверлейные ссылки.. Допиливаю :)
-
-
Теперь генерятся исходники для всех оверлеев. По именам файлов ещё надо думать - для PDP11 систем это 6 или 9 символов в имени плюс 3 в расширении.
Код:
Directory of ForDebug\DisAsm\DOS11\09.20c
28.01.2024 15:16 <DIR> .
24.01.2024 19:25 <DIR> ..
11.12.1972 00:00 19 890 CILUS.LDA
24.01.2024 21:38 40 357 dump.txt
28.01.2024 15:14 1 858 MONLIB.BCL.2.MAC
28.01.2024 15:14 1 873 MONLIB.BCL.3.MAC
28.01.2024 15:14 1 879 MONLIB.BCL.4.MAC
28.01.2024 15:14 1 754 MONLIB.BCL.5.MAC
28.01.2024 15:13 14 743 MONLIB.CF.TBL.MAC
11.12.1972 00:00 89 600 MONLIB.CIL
28.01.2024 15:14 368 MONLIB.CL.L.MAC
28.01.2024 15:14 381 MONLIB.CL.P.MAC
28.01.2024 15:14 3 430 MONLIB.CTO1.MAC
28.01.2024 15:14 3 234 MONLIB.CTO2.MAC
28.01.2024 15:14 6 042 MONLIB.DV.CR0.MAC
28.01.2024 15:14 7 985 MONLIB.DV.CR1.MAC
28.01.2024 15:14 7 459 MONLIB.DV.CR2.MAC
28.01.2024 15:14 10 286 MONLIB.DV.CR3.MAC
28.01.2024 15:14 12 478 MONLIB.DV.CT.MAC
28.01.2024 15:14 1 170 MONLIB.DV.DC.MAC
28.01.2024 15:14 1 218 MONLIB.DV.DF.MAC
28.01.2024 15:14 2 083 MONLIB.DV.DK.MAC
28.01.2024 15:14 4 392 MONLIB.DV.DP.MAC
28.01.2024 15:14 4 393 MONLIB.DV.DPB.MAC
28.01.2024 15:14 2 698 MONLIB.DV.DT.MAC
28.01.2024 15:14 8 471 MONLIB.DV.KB.MAC
28.01.2024 15:14 2 701 MONLIB.DV.LP0.MAC
28.01.2024 15:14 3 243 MONLIB.DV.LP1.MAC
28.01.2024 15:14 7 771 MONLIB.DV.MT.MAC
28.01.2024 15:14 1 227 MONLIB.DV.PP.MAC
28.01.2024 15:14 1 076 MONLIB.DV.PR.MAC
28.01.2024 15:14 1 826 MONLIB.EDP.2.MAC
28.01.2024 15:14 1 787 MONLIB.EDP.3.MAC
28.01.2024 15:14 3 541 MONLIB.EM.006.MAC
28.01.2024 15:14 2 822 MONLIB.EM.007.MAC
28.01.2024 15:14 1 758 MONLIB.EM.010.MAC
28.01.2024 15:14 2 011 MONLIB.EM.011.MAC
28.01.2024 15:14 799 MONLIB.EM.012.MAC
28.01.2024 15:14 574 MONLIB.EM.013.MAC
28.01.2024 15:14 2 981 MONLIB.EM.014.MAC
28.01.2024 15:14 3 533 MONLIB.EM.015.MAC
28.01.2024 15:14 3 570 MONLIB.EM.016.MAC
28.01.2024 15:14 3 282 MONLIB.EM.017.MAC
28.01.2024 15:14 2 954 MONLIB.EM.020.MAC
28.01.2024 15:14 3 544 MONLIB.EM.021.MAC
28.01.2024 15:14 3 506 MONLIB.EM.022.MAC
28.01.2024 15:14 2 253 MONLIB.EM.024.MAC
28.01.2024 15:14 3 454 MONLIB.EM.025.MAC
28.01.2024 15:14 1 914 MONLIB.EM.031.MAC
28.01.2024 15:14 1 845 MONLIB.EM.032.MAC
28.01.2024 15:14 1 846 MONLIB.EM.033.MAC
28.01.2024 15:14 1 814 MONLIB.EM.034.MAC
28.01.2024 15:14 1 881 MONLIB.EM.035.MAC
28.01.2024 15:14 2 041 MONLIB.EM.041.MAC
28.01.2024 15:14 2 898 MONLIB.EM.042.MAC
28.01.2024 15:14 3 527 MONLIB.EM.043.MAC
28.01.2024 15:14 3 317 MONLIB.EM.044.MAC
28.01.2024 15:14 3 557 MONLIB.EM.045.MAC
28.01.2024 15:14 3 190 MONLIB.EM.046.MAC
28.01.2024 15:14 2 391 MONLIB.EM.047.MAC
28.01.2024 15:14 2 066 MONLIB.EM.050.MAC
28.01.2024 15:14 3 531 MONLIB.EM.051.MAC
28.01.2024 15:14 2 826 MONLIB.EM.052.MAC
28.01.2024 15:14 3 457 MONLIB.EM.053.MAC
28.01.2024 15:14 3 479 MONLIB.EM.054.MAC
28.01.2024 15:14 2 297 MONLIB.EM.055.MAC
28.01.2024 15:14 3 497 MONLIB.EM.056.MAC
28.01.2024 15:14 3 551 MONLIB.EM.057.MAC
28.01.2024 15:14 1 463 MONLIB.EM.060.MAC
28.01.2024 15:14 3 608 MONLIB.EM.061.MAC
28.01.2024 15:14 3 034 MONLIB.EM.062.MAC
28.01.2024 15:14 3 422 MONLIB.EM.063.MAC
28.01.2024 15:14 1 821 MONLIB.EM.064.MAC
28.01.2024 15:14 3 575 MONLIB.EM.065.MAC
28.01.2024 15:14 3 314 MONLIB.EM.066.MAC
28.01.2024 15:14 2 102 MONLIB.EM.067.MAC
28.01.2024 15:14 3 550 MONLIB.EM.071.MAC
28.01.2024 15:14 1 624 MONLIB.EM.077.MAC
28.01.2024 15:14 3 245 MONLIB.IN.001.MAC
28.01.2024 15:14 1 968 MONLIB.KB.AS.MAC
28.01.2024 15:14 1 856 MONLIB.KB.AS2.MAC
28.01.2024 15:14 1 903 MONLIB.KB.AS3.MAC
28.01.2024 15:14 1 829 MONLIB.KB.BE.MAC
28.01.2024 15:14 1 753 MONLIB.KB.BE2.MAC
28.01.2024 15:14 1 881 MONLIB.KB.BE3.MAC
28.01.2024 15:14 1 833 MONLIB.KB.BE4.MAC
28.01.2024 15:14 1 701 MONLIB.KB.DA.MAC
28.01.2024 15:14 1 850 MONLIB.KB.DA2.MAC
28.01.2024 15:14 1 806 MONLIB.KB.DA3.MAC
28.01.2024 15:14 1 858 MONLIB.KB.DA4.MAC
28.01.2024 15:14 1 877 MONLIB.KB.DU.MAC
28.01.2024 15:14 1 893 MONLIB.KB.DU2.MAC
28.01.2024 15:14 1 506 MONLIB.KB.DU3.MAC
28.01.2024 15:14 784 MONLIB.KB.DX1.MAC
28.01.2024 15:14 1 804 MONLIB.KB.EC.MAC
28.01.2024 15:14 1 603 MONLIB.KB.EO.MAC
28.01.2024 15:14 1 864 MONLIB.KB.KI.MAC
28.01.2024 15:14 1 594 MONLIB.KB.KI2.MAC
28.01.2024 15:14 1 707 MONLIB.KB.ME.MAC
28.01.2024 15:14 1 722 MONLIB.KB.MO.MAC
28.01.2024 15:14 1 942 MONLIB.KB.MO2.MAC
28.01.2024 15:14 1 681 MONLIB.KB.OD.MAC
28.01.2024 15:14 1 633 MONLIB.KB.OW.MAC
28.01.2024 15:14 1 559 MONLIB.KB.SA.MAC
28.01.2024 15:14 1 889 MONLIB.KB.SA2.MAC
28.01.2024 15:14 3 238 MONLIB.KB.SA3.MAC
28.01.2024 15:14 1 550 MONLIB.KB.TE.MAC
28.01.2024 15:14 1 856 MONLIB.KB.TF.MAC
28.01.2024 15:14 1 861 MONLIB.KB.TF2.MAC
28.01.2024 15:14 1 858 MONLIB.KB.TS.MAC
28.01.2024 15:14 1 863 MONLIB.KB.TS2.MAC
28.01.2024 15:14 1 659 MONLIB.KB.WA.MAC
28.01.2024 15:14 1 890 MONLIB.KBL.2.MAC
28.01.2024 15:14 1 813 MONLIB.KBL.3.MAC
27.05.2021 13:56 69 120 MONLIB.LCL
28.01.2024 15:14 3 598 MONLIB.LD.001.MAC
28.01.2024 15:14 3 433 MONLIB.LD.002.MAC
28.01.2024 15:08 24 063 MONLIB.MAC
28.01.2024 15:14 3 238 MONLIB.OPN1.MAC
28.01.2024 15:12 55 238 MONLIB.RM.001.MAC
28.01.2024 15:14 49 097 MONLIB.TM..MAC
27.05.2021 13:56 15 360 SYSLOD.CIL
27.05.2021 13:56 13 312 SYSMAC.SML
121 File(s) 693 281 bytes
2 Dir(s) 39 142 969 344 bytes free
Проверки пока идут с CIL файлами :)