Relocation (computing): Difference between revisions

Content deleted Content added
Line 84:
* {{cite book |title=The Microsoft OBJ File Format |publisher=[[Microsoft]], Product Support Services |id=Application Note SS0288 |url=https://www.fileformat.info/format/ms-obj/corion.htm |access-date=2017-08-21 |url-status=live |archive-url=https://archive.today/20170909092856/http://www.fileformat.info/format/ms-obj/corion.htm |archive-date=2017-09-09}}
* {{cite book |author-first1=Andrew Stuart |author-last1=Tanenbaum |author-link1=Andrew Stuart Tanenbaum |author-first2=Herbert |author-last2=Bos |title=Modern Operating Systems |edition=4 |date=2015 |publisher=[[Pearson Education Inc.]] |isbn=978-0-13359162-0}}
* {{cite web |author-first=John C. |author-last=Elliott |title=PRL file format |date=2012-06-05 |orig-date=2000-01-02 |website=seasip.info |url=https://www.seasip.info/Cpm/prl.html |access-date=2020-01-26 |url-status=live |archive-url=https://web.archive.org/web/20200126182027/https://www.seasip.info/Cpm/prl.html |archive-date=2020-01-26 |quote=[…] A PRL file is a relocatable binary file, used by [[MP/M]] and [[CP/M Plus]] for various modules other than [[.COM file]]s. The file format is also used for FID files on the [[Amstrad PCW]]. There are several file formats which use versions of PRL: SPR (System PRL), RSP (Resident System Process). LINK-80 can also produce [[.OVL|OVL]] ([[overlay (programming)|overlay]]) files, which have a PRL header but are not relocatable. [[Graphics System Extension|GSX]] drivers are in PRL format; so are [[Resident System Extension]]s (.RSX). […]}} [https://www.seasip.info/Cpm/amsfid.html#PRL%20file%20format]
* {{cite web |author-first=John C. |author-last=Elliott |title=Microsoft REL format |date=2012-06-05 |orig-date=2000-01-02 |website=seasip.info |url=https://www.seasip.info/Cpm/rel.html |access-date=2020-01-26 |url-status=live |archive-url=https://web.archive.org/web/20200126181737/https://www.seasip.info/Cpm/rel.html |archive-date=2020-01-26 |quote=[…] The REL format is generated by [[Microsoft]]'s M80 and [[Digital Research]]'s RMAC. […]}}
* {{cite web |title=Support for PRL, page relocatable executable for MP/M |date=2018-09-05 |orig-date=2018-09-02 |author=feilipu |work=z88dk |url=https://github.com/z88dk/z88dk/issues/935 |access-date=2020-01-26 |url-status=live |archive-url=https://web.archive.org/web/20200201053652/https://github.com/z88dk/z88dk/issues/935 |archive-date=2020-02-01 |quote=[…] Out of the assembled [[Microsoft]] .REL files the linker has to generate a .PRL format executable for [[MP/M]]. The .PRL format is essentially a [[.COM file]] with some additional information to enable the program and its data to be relocated onto any page. What does a .PRL file look like? The first bytes are size of the program, followed by the program origin at 0x0100. Following the program, there is a bit-for-byte mask appended to allow the MP/M system to know which bytes in the program need to be changed when the program is relocated. How does the linker do that without disassembling the whole application? In advance the program is linked for two different origins 0x0100 and 0x0200, from the .REL objects. The linker trick is simply recognising which bytes in the two versions of the executable differ. These bytes are then recorded in the bit mask stored following the executable, and the final .PRL program is designed to run from 0x0100 plus its page offset. The same trick is done for the .RSP and .SPR executable files, except that both these formats forego the offset, and run from 0x0000 plus their page offset. […]}}