★ APPLICATIONS ★ DIVERS ★ STRUKLIST (COMPUTER TEAM) ★![]() |
Struklist (Computer Team) | Applications Divers |
Strukturierte Listings für Schneider CPC Dieses Programm listet Programme auf Bildschirm der Drucker. Dabei werden Zeilennummern rechtsbündig ausgegeben sowie For-Next und While-Wend Schleifen eingerückt, wenn dies möglich ist. Man lädt das Programm zu diesem Zweck mit MERGE zu dem zu listenden Programm und startet es mit RUN 60000. Für die Ausgabe auf Drucker sollte in Zeile 60210 device = 8 stehen, andernfalls device = 0 für Ausgabe auf den Bildschirm. In Zeile 60450 sollten Sie das erste REM und den Doppelpunkt entfernen, damit sich das Programm nicht selbst listet. In den Zeilen 60220 und 60230 müssen Soll- und Istbreite für die Ausgabe angegeben werden. Struklist liest den BASIC-Speicher aus und wandelt dabei die Tokens (Kürzel für BASIC-Befehle) in die tatsächliche Zeichendarstellung um (sie stehen am Ende des Programms). Werte von Konstanten, wie z.B. in ,,a = 3.14“, speichert der Schneider nicht Pascalstrukturen in BASIC in Form von ASCII-Zeichen ab, d.h. nicht als fortlaufende Zeichen wie ,,3“ ,,1" ,,4", wie dies die meisten Rechner tun, er wählt vielmehr eine von der Größe der Konstanten abhängige Darstellung und vermindert so den Speicherbedarf und erhöht die Ausführungsgeschwindigkeit. Alle dezimalen Konstanten unter 10 werden dabei in nur einem Byte abgelegt; dezimale Werte unter 256 werden durch ein Byte gekennzeichnet, auf das dann der eigentliche Wert folgt. Dies geschieht analog mit dezimalen, hexadezimalen und binären Konstanten, die mit einem Kennbyte beginnen und in zwei weiteren Bytes den eigentlichen Wert enthalten. Fließkommazahlen werden grundsätzlich als 5 Byte-Sequenzen abgelegt, wobei die Darstellung der Ablage der Variableninhalte entspricht. Auch dies ist ein Grund für die hohe Geschwindigkeit der Programmausführung des Schneiders, weil bei einer Zuweisung diese fünf Byte nur übertragen werden brauchen, während die meisten anderen Computer die ASCII-Darstellung von Zahlen erst noch in das Variablen-Format umwandeln müssen. Auch bei der Ablage der Zeilennummer hinter GOTO wird ein Trick angewendet: Hier steht nicht etwa die Zeilennummer, sondern ein Zeiger, der auf den Beginn der angesprungenen Zeile im Speicher zeigt. Bei der Ausführung kann also dann der Ausführungszeiger direkt auf diese Speicherstelle gesetzt werden; viele andere Rechner müssen in dieser Situation den gesamten BASIC-Speicher nach der anzuspringenden Zeile absuchen. Deshalb werden Sprünge an den Programmanfang bei den meisten Rechnern schneller durchgeführt als an das Ende (die gesuchte Zeile wird schneller gefunden), während der Schneider immer gleich schnell springt.
|