--_000_CY1PR1001MB121096A6FC8D0C97364D27A9EBA00CY1PR1001MB1210_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Is there any more detailed documentation available on SymbOS's relocation t= able than what I found in SymbOS-Applications.txt?
The fourth part contains the relocator table. The relocator table is a lis=
t of
pointer (words), which points to the addresses, where a reference needs to=
be
modified, so that the application code can be relocated. The relocator tab=
le
will be loaded only temporary and removed after the relocation process.
Is the table just a list of 16-bit offsets into the binary where a 16-bit a= ddress needs adjustment?
If so, this isn't adequate for z80 programs. Here's one example that split=
s an address into its low and high byte portions:
0109 DD 7E FC [19] 343 ld a,-4 (ix)
010C C6r00 [ 7] 344 add a, #<(_dos_filenum) ;; LSB
010E DD 77 FC [19] 345 ld -4 (ix),a
0111 DD 7E FD [19] 346 ld a,-3 (ix)
0114 CEs00 [ 7] 347 adc a, #>(_dos_filenum) ;; MSB
0116 DD 77 FD [19] 348 ld -3 (ix),a
To properly relocate this code, you'd have to patch single bytes correspond= ing to the _dos_filename high and low byte portions.
If SymbOS can't relocate this sort of code, would it be possible for a prog= ram to supply its own relocator that is discarded by SymbOS after it's run?
--_000_CY1PR1001MB121096A6FC8D0C97364D27A9EBA00CY1PR1001MB1210_
Content-Type: text/html; charset=US-ASCII
Content-Transfer-Encoding: 7bit
<head>
<style type="text/css">
<!--
/* start of attachment style */
.ygrp-photo-title{
clear: both;
font-size: smaller;
height: 15px;
overflow: hidden;
text-align: center;
width: 75px;
}
div.ygrp-photo{
background-position: center;
background-repeat: no-repeat;
background-color: white;
border: 1px solid black;
height: 62px;
width: 62px;
}
div.photo-title
a,
div.photo-title a:active,
div.photo-title a:hover,
div.photo-title a:visited {
text-decoration: none;
}
div.attach-table div.attach-row {
clear: both;
}
div.attach-table div.attach-row div {
float: left;
/* margin: 2px;*/
}
p {
clear: both;
padding: 15px 0 3px 0;
overflow: hidden;
}
div.ygrp-file {
width: 30px;
valign: middle;
}
div.attach-table div.attach-row div div a {
text-decoration: none;
}
div.attach-table div.attach-row div div span {
font-weight: normal;
}
div.ygrp-file-title {
font-weight: bold;
}
/* end of attachment style */
-->
</style>
</head>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Windows Mail 17.5.9600.20911">
<style><!--
#ygrp-mkp {
border:1px solid #d8d8d8;
font-family:Arial;
margin:10px 0;
padding:0 10px;
}
#ygrp-mkp hr {
border:1px solid #d8d8d8;
}
#ygrp-mkp #hd {
color:#628c2a;
font-size:85%;
font-weight:700;
line-height:122%;
margin:10px 0;
}
#ygrp-mkp #ads {
margin-bottom:10px;
}
#ygrp-mkp .ad {
padding:0 0;
}
#ygrp-mkp .ad p {
margin:0;
}
#ygrp-mkp .ad a {
color:#0000ff;
text-decoration:none;
}
#ygrp-sponsor #ygrp-lc {
font-family:Arial;
}
#ygrp-sponsor #ygrp-lc #hd {
margin:10px 0px;
font-weight:700;
font-size:78%;
line-height:122%;
}
#ygrp-sponsor #ygrp-lc .ad {
margin-bottom:10px;
padding:0 0;
}
</style><style data-externalstyle="true"><!--
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph {
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
margin-bottom:.0001pt;
}
p.MsoNormal, li.MsoNormal, div.MsoNormal {
margin:0in;
margin-bottom:.0001pt;
}
p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst,
p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle,
p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast {
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
margin-bottom:.0001pt;
line-height:115%;
}
</style>
</head>
<body dir="ltr">
<!-- |**|begin egp html banner|**| -->
<br><br>
<!-- |**|end egp html banner|**| -->
<div data-externalstyle="false" dir="ltr" style="font-family: 'Calibri', 'Segoe UI', 'Meiryo', 'Microsoft YaHei UI', 'Microsoft JhengHei UI', 'Malgun Gothic', 'sans-serif';font-size:12pt;">
<div>Is there any more detailed documentation available on SymbOS’s relocation table than what I found in SymbOS-Applications.txt?</div>
<div><br>
</div>
<div>>The fourth part contains the relocator table. The relocator table is a list of<br>
>pointer (words), which points to the addresses, where a reference needs to be<br>
>modified, so that the application code can be relocated. The relocator table<br>
>will be loaded only temporary and removed after the relocation process.</div>
<div><br>
</div>
<div>Is the table just a list of 16-bit offsets into the binary where a 16-bit address needs adjustment?</div>
<div><br>
</div>
<div>If so, this isn't adequate for z80 programs. Here’s one example that splits an address into its low and high byte portions:</div>
<div><br>
</div>
<div>
<pre>0109 DD 7E FC [19] 343 ld a,-4 (ix)
010C C6r00 [ 7] 344 add a, #<(_dos_filenum) ;; LSB 010E DD 77 FC [19] 345 ld -4 (ix),a
0111 DD 7E FD [19] 346 ld a,-3 (ix)
0114 CEs00 [ 7] 347 adc a, #>(_dos_filenum) ;; MSB 0116 DD 77 FD [19] 348 ld -3 (ix),a</pre>
</div>
<div><br>
</div>
<div>To properly relocate this code, you’d have to patch single bytes corresponding to the _dos_filename high and low byte portions.</div>
<div><br>
</div>
<div>If SymbOS can’t relocate this sort of code, would it be possible for a program to supply its own relocator that is discarded by SymbOS after it’s run?</div>
<div><br>
</div>
<div style="clear: both;"></div>
<div></div>
</div>
<!-- |**|begin egp html banner|**| -->
<!-- |**|end egp html banner|**| -->
<div width="1" style="color: white; clear: both;"/>__._,_.___</div>
<div id="fromDMARC" style="clear:both; margin-top: 10px;">
<hr style="height:2px ; border-width:0; color:#E3E3E3; background-color:#E3E3E3;">
Posted by: alvin albrecht <
alvin_albrecht@hotmail.com> <hr style="height:2px ; border-width:0; color:#E3E3E3; background-color:#E3E3E3;">
</div>
<!-- Start Recommendations -->
<!-- End Recommendations -->
<!-- |**|begin egp html banner|**| -->
<img src="
http://geo.yahoo.com/serv?s=97476590/grpId=18448305/grpspId=1705006559/msgId=1441/stime=1478109220" width="1" height="1"> <br>
<!-- |**|end egp html banner|**| -->
<!-- |**|begin egp html banner|**| -->
<!-- |**|begin egp html banner|**| -->
<div id="ygrp-vital" style="background-color: #f2f2f2; font-family: Verdana; font-size: 10px; margin-bottom: 10px; padding: 10px;">
<span id="vithd" style="font-weight: bold; color: #333; text-transform: uppercase; "><a href="
https://groups.yahoo.com/neo/groups/symbos8bit/info;_ylc=X3oDMTJmN2g3bHZnBF9TAzk3MzU5NzE0BGdycElkAzE4NDQ4MzA1BGdycHNwSWQDMTcwNTAwNjU1OQRzZWMDdnRsBHNsawN2Z2hwBHN0aW1lAzE0NzgxMDkyMjA-" style="text-decoration: none;">Visit Your Group</a></span>
<ul style="list-style-type: none; margin: 0; padding: 0; display: inline;">
</ul>
</div>
<div id="ft" style="font-family: Arial; font-size: 11px; margin-top: 5px; padding: 0 2px 0 0; clear: both;">
<a href="
https://groups.yahoo.com/neo;_ylc=X3oDMTJlcGtuOGhxBF9TAzk3NDc2NTkwBGdycElkAzE4NDQ4MzA1BGdycHNwSWQDMTcwNTAwNjU1OQRzZWMDZnRyBHNsawNnZnAEc3RpbWUDMTQ3ODEwOTIyMA--" style="float: left;"><img src="
http://l.yimg.com/ru/static/images/yg/img/email/new_logo/logo-groups-137x15.png" height="15" width="137" alt="Yahoo! Groups" style="border: 0;"/></a>
<div style="color: #747575; float: right;"> • <a href="
https://info.yahoo.com/privacy/us/yahoo/groups/details.html" style="text-decoration: none;">Privacy</a> • <a href="mailto:
symbos8bit-unsubscribe@yahoogroups.com?subject=Unsubscribe" style="text-decoration: none;">Unsubscribe</a> • <a href="
https://info.yahoo.com/legal/us/yahoo/utos/terms/" style="text-decoration: none;">Terms of Use</a> </div>
</div>
<!-- |**|end egp html banner|**| -->
</div> <!-- ygrp-msg -->
<br>
<!-- |**|end egp html banner|**| -->
<div style="color: white; clear: both;"/>__,_._,___</div>
</body>
</html>
--_000_CY1PR1001MB121096A6FC8D0C97364D27A9EBA00CY1PR1001MB1210_--