[File] [PATCH] Magdir/c64, mmdf, images, pdp collision: D64 Image, MMDF mailbox, Targa image, PDP-11 UNIX/RT ldp
Guy Harris
gharris at sonic.net
Thu Feb 29 12:19:42 UTC 2024
On Feb 18, 2024, at 5:26 PM, Jörg Jenderek (GMX) <joerg.jen.der.ek at gmx.net> wrote:
> The description as PDP (with magic strength 50) happens inside
> Magdir/pdp by lines like:
>
> 0 leshort 0401
> >68 ulelong !0x00000058 PDP-11 UNIX/RT ldp
UNIX/RT was based on MERT:
https://www.tuhs.org/Archive/Documentation/TechReports/Heinz_Tech_Memos/The_MERT_Operating_System.pdf
MERT included a program called "ldp":
https://www.tuhs.org/Archive/Documentation/Manuals/MERT_Release_0/Mert%20Programmers%20Manual%20-%20Red%20Tabs/e%20-%20MERT%20Programs/ldp.e.pdf
which could produce "a public library, data library (D), kernel (k), supervisor (s), or user (u) process". This document:
https://www.tuhs.org/Archive/Documentation/TechReports/Heinz_Tech_Memos/TM-78-3114-4_The_MERT-UNIX_Supervisor_19780420.pdf
says
12. Public Libraries
User programs often share a number of library routines. If the size of these routines is significant and there are many user programs sharing the same routines, multiple copies will exist in memory. To avoid this, public libraries were implemented in the user program environment. This saves a significant amount of physical memory in cases where a number of programs need to share a large set of routines as in the case of a centralized data base manager. Data as well as text may be shared either in one segment or separate segments. When libraries are formed using the ldp[6l command, the starting base registers must be specified. The output is placed in a type '0401' file which uses a header block of 512 bytes to specify the segments which are included. The final user program, also of type '0401' may include up to three public libraries. The segments which make up the 'a.out' file including those of the public libraries must not overlap in virtual address space.
so that format is used for some executables on MERT. I have not been able to find any further documentation on that format.
If the only criterion for matching those files is a magic number of 0401, that means any file where the first two octets are 0x01 0x01 would match, which is probably a bit of a weak heuristic. Unfortunately, without any documentation on the format of those binaries, it's hard to strengthen the heuristics.
More information about the File
mailing list