
Mir geht es um die Tabelle zum Anpassen der Bezüge. Laut Programmierhandbuch zu DOS von G. Born besteht ein Tabelleneintrag aus 2 Bytes Offset und 2 Bytes Displacement (wohingegen andere Dokus sagen, ein Eintrag bestünde aus 2 Bytes Offset und 2 Bytes Segment) - Was stimmt denn nun? Nächste Frage: Wenn es stimmt, das es 2 Bytes Offset und 2 Bytes Displacement sind - dann kommt früher oder später der Fall, das z. B. ein Offset auf $FFA0 zeigt, der nächste Eintrag dann Offset $010A o. ä. beinhaltet - in der Realität bedeutet dies: Wie zähle ich die Segmente weiter? Rechnet man in der Reloc-Table immer mit 64K großen segmenten und ich müsste dann einfach wenn der Offset eines Eintrages auf 0 springt, die Segmente entsprechend weiterrechnen?
Andere Frage: Wenn es stimmt, das es aus Segment und Offset besteht (die Tabelle), wozu dann? Was muss ich dann zu dieser dort verzeichneten Adresse dazuzählen? Das Displacement zu CS?
Warum ich frage: Ich möchte mir die Entwicklung neuer Software erleichtern und dazu eine Turbopascal-Unit verwenden (kein reines ASM mehr) - die EXE-Datei, die TP erzeugt, bekommt ein Lade-Programm vorangestellt, das dafür sorgt, das mein DOS denkt, es sei eine passende Anwendung, sowie das die wichtigsten int $21-Funktionen emuliert und die EXE-DAtei anpasst, bevor sie ausgeführt wird.