Die Sprungleisten des BetriebssystemsJumpblocks = SprungleistenZunächst einmal werden die Einsprungs-Adressen für die wichtigsten Routinen vom 'Hersteller' des Betriebssystems garantiert: "Die Routine 'xyz' wird immer durch Aufruf dieser Adresse erreichbar sein." Da das von der Programmierung her nur sehr schwer zu erreichen ist (Eine Änderung an einer Stelle im Programmcode verschiebt zwangsläufig alle nachfolgenden Routinen im Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM) fasst man die Einsprungsadressen zu sogenannten 'Sprungleisten' zusammen: Ein bestimmter Bereich im Speicher besteht nur aus Befehlssatz der Z80 sortiert nach Funktionen: Sprung-BefehleSprung-Befehlen zu den einzelnen Betriebssystem-Routinen. Ein Eintrag in diesem 'BCD1: KL LOG EXT: 1. JumpblockJumpblock', also ein 3-Byte-Z80-Sprungbefehl, wird als Vektor bezeichnet. Werden jetzt Änderungen im Programmcode vorgenommen, so verschieben sich zwar die Anfangsadressen der einzelnen Routinen. Die Lage der Sprungleiste und also auch die Lage aller Vektoren bleibt aber gleich. In jedem Vektor ist jetzt nur ein Sprung zu der geänderten Routinenadresse eingetragen. Programme, die nur die Vektoren und nicht direkt die Betriebssystem-Routinen aufrufen, haben also gute Aussichten, auch bei einem modifizierten Betriebssystem ohne Änderungen lauffähig zu bleiben. Damit wäre also das Problem der festen Einsprungs-Adressen gelöst. Wie steht es aber mit der Tatsache, dass man vor jedem Aufruf einer Betriebssystem-Routine das untere Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM einblenden muss? |