002
05.06.2026, 22:24 Uhr
Early8Bitz
|
Die Fragestellung war "Binäre Dateien".
UDOS kennt zwei Arten von Dateien, die binäre Daten enthalten können. - Dateityp B (Binary) - die enthalten Daten als lineare Bytefolge für ein bestimmtes Anwendungsprogramm. Z.B. die *.OBJ Dateien, die ASM erzeugt und von LINK/PLINK weiter verarbeitet werden. Oder Zwischencodedateien beim PLZ Compiler. Die jewelige Anwendung muss sich mit der Organisation und Struktur des binären Inhalts auskennen.
- Dateityp P (Procedure) - Unter UDOS lad- und ausführbare Dateien. Als reinen Bytestrom betrachtet erstmal wie B Dateien. Allerdings müssen, damit UDOS Speicher allozieren, die Datei laden und anstarten kann, eine Reihe von Metadaten vorliegen, die nicht zum eigenlichen Dateiinhalt gehören.
Die Metadaten die für eine funktionsfähige P-Datei existieren müssen, stehen im Dateidescriptor. Den kann man, nachdem der reine Dateiinhalt binär auf der UDOS-Diskette erzeugt wurde, modifizieren - wenn man die Infos hat.
UDOS P-Dateien können zur korrekten Ausführung: - Auf irgendeine Speicheradresse gelinkt worden sein, nicht zwangsweise auf die erste freie Adresse (meist 0x4000) im RAM. - Können segmentiert sein, wenn das Programm aus mehreren Quellmodulen besteht, die nicht lückenlos hintereinander gelinkt sind. - Können segmentiert sein, wenn mitten im Quellcode uninitialisierte Bereiche vereinbart waren (PUFFER: DEFS 1024), die größer sind, als die Recordlänge der Datei. Der Linker segmentiert in diesem Fall die P-Datei, um keinen Platz mit leeren Records auf der Diskette zu verschwenden. - Der Startpunkt (Entrypoint) muss nicht zwangsweise das erste Byte der P-Datei sein, er kann auch irgendwo im Programmcode vereinbart worden sein.
All diese Infos sind also zusätzlich zu den eigentlichen Datenrecords der P-Datei notwendig, wenn die aus einem Nicht-UDOS-System importiert wird. -- Gruß Ralf
Ist ein alter Schaltkreis ein Schaltgreis? Dieser Beitrag wurde am 05.06.2026 um 22:28 Uhr von Early8Bitz editiert. |