CP/M-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Memberlist || Home || Statistik || Kalender || Staff Willkommen Gast!
[ Unofficial CP/M Website ] [ Z80 Family Support Page ] [ Forum-Regeln ] [ Impressum/Kontakt ] [ Datenschutzerklärung ]

CP/M-Forum » CP/M-Software » Frage zu Link-80 » Threadansicht

Autor Thread - Seiten: -1-
000
11.03.2016, 22:52 Uhr
m.haardt



Hallo,

wenn ich das Image fuer ein Monitor-ROM linke, bekomme ich das hier:

Link-80 3.44 09-Dec-81 Copyright (c) 1981 Microsoft

Data 4000 46E8 < 1768>
Program 0000 3EE5 <16101>

29022 Bytes Free
[0000 46E8 70]
Origin below loader memory, move anyway(Y or N)?n

Bei y haengt das System sich auf. Was genau bedeutet das? Ich bin aus dem Manual nicht schlau geworden. Das File wird bei "n" erzeugt. Versucht l80 das erzeugte Image in den Speicher zu laden, und wenn ja, warum?

Michael
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
001
12.03.2016, 11:43 Uhr
HD64180CPM



Hallo Michael,

Entweder die Daten oder Programmbereich hat einen Ursprung oder Oben(TOP) , die außerhalb des Loaderspeicher liegt

Hast Du auch /P:<address> /D:<address> benutzt !

Normal ist sonst die Adresse 100H

Wahrscheinlich zu testen wird mit y geantwortet , aber wenn das Programm nicht richtig ist hängt sich das CP/M natürlich auf !

Gruss Rolf
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
002
12.03.2016, 13:49 Uhr
m.haardt



Klar habe ich /p und /d benutzt. Wie gesagt geht es um das Linken fuer ein Monitor-ROM.

Heisst das, l80 laedt und startet das Programm normalerweise?

Ich habe noch nie l80 benutzt, sondern immer zasm/zlink, und die arbeiten nur mit Dateien und machen sonst nichts unerwartetes.

Michael
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
003
12.03.2016, 18:22 Uhr
HD64180CPM



Hallo Michael,

ich benutze lieber den ASide Assembler ein um Monitor-ROM
zu erstellen.

http://www.theeg.de/aside/

oder eine andere Software als den L80 .

Gruss Rolf
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
004
13.03.2016, 20:02 Uhr
mtx500



Oh Gott, das ist schon soooo lange her. Ich habe mal bei meinen ROMs gekramt:
Ich habe in meinen Assembler-Quellen von ROMs immer das Paar .PHASE / .DEPHASE drumrum, damit die Adresse für die das assembliert wird nichts mit der Adresse zu tun hat, wo es laut LINK-80 später liegen soll. Also der Assembler arbeitet ab 0x0000, aber der Linker legt es dann nach 0x0100 und dann wird es als .COM erzeugt (formal ab 0x0100) und läuft aber dann tatsächlich ab 0x0000.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
005
15.03.2016, 12:18 Uhr
m.haardt



Das heisst, Link-80 lädt das erzeugte Programm auch immer in den Speicher? Warum?

Michael
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
006
15.03.2016, 21:11 Uhr
mtx500



Das Programm MS-LINK nennt sich offiziell "Linking Loader", d.h. es wurde von Anfang an so konzipiert, dass es den Inhalt von REL files an absolute Adressen im Speicher lädt, und dann das Ergebnis optional auf die Platte schreibt.
So steht das auch in seiner Beschreibung. Ich zitiere mal ein bisschen:

"Loading means physically placing the file in memory and assigning absolute addresses to the code and data in place of the relative addresses assigned by MS-MACRO Assembler."

"MS-LINK can also save the assembled-and-linked program as an executable object program on disk in a file with the extension .COM."

Ich vermute mal, der Grund ist, dass es einfacher zu programmieren ist alles im Speicher anzuordnen und die Adressen zu fixen als das direkt in einer Datei zu tun.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
007
15.03.2016, 22:47 Uhr
m.haardt



Linking loader, das ist das Stichwort. Das haette mir beim Lesen eigentlich auffallen müssen.

Es ist nicht einfacher, weil l80 das Programm ja erst hinterher verschiebt, sondern es spart Massenspeicher. Ganz alte Betriebssysteme haben das darum so gemacht, Programme erst beim Laden zu linken. l80 als Urgestein mit 6 signifikanten Zeichen bei Symbolen ist offenbar noch so ein Relikt.

Dann kamen statisch gelinkte Programme in Mode und inzwischen wieder dynamisch gelinkte, aber jetzt mit gemeinsam genutzten Libraries.

Michael
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
Seiten: -1-     [ CP/M-Software ]  



gaby.de

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek