[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