29.10.2013 Aufrufe

CP1 Anleitung (Manual) - 8Bit-Homecomputermuseum

CP1 Anleitung (Manual) - 8Bit-Homecomputermuseum

CP1 Anleitung (Manual) - 8Bit-Homecomputermuseum

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

ter, wenn etwas nicht funktioniert. Auf 99,3% aller<br />

Fälle trifft das obige Zitat zu.<br />

Zum Abschluß dieser Betrachtungen noch ein<br />

Ausdruck der Computerfachsprache: das Aufspü­<br />

ren von Fehlern am Computer heißt „debugging"<br />

(englisch bug eigentlich Wanze, aber in der ameri­<br />

kanischen Umgangssprache auch „Macke", Feh­<br />

ler).<br />

1.72 Tips und Tricks für den<br />

Programmierer<br />

Listing 24:1-Minuten-Verzögerung<br />

Adresse Mnemonics Code Kommentar<br />

Für Routinearbeiten - wenn z.B. mehrmals, aber<br />

an verschiedenen Stellen durch die gleiche Zahl di­<br />

vidiert werden soll - sehen Sie ein Unterprogramm<br />

mit dem Indirekten Unbedingten Sprung vor (siehe<br />

Kapitel 1.68). Durch die Unterprogrammtechnik<br />

kann enorm viel Platz eingespart werden.<br />

Scheuen Sie sich nicht, für lange Verzögerungs­<br />

zeiten ein kleines Schleifenprogramm zu schreiben.<br />

Für eine Verzögerungszeit von beispielsweise einer<br />

Minute würden Sie mit einem linearen Programm<br />

zweihundertvierzig VZG 250-Befehle benötigen,<br />

also mehr Platz brauchen, als überhaupt zur Ver­<br />

fügung steht. Elegant löst man dieses Problem ge­<br />

mäß Listing 24.<br />

• • •<br />

• • • • Irgendein Programmteil<br />

• • • J<br />

068 VZG 250 03.250 Verzögere 250 ms<br />

069 LDA 100 05.100 Lade den Inhalt von Zelle 100 in den Akku<br />

070 SUB 101 08.101 Subtrahiere „1"<br />

071 ABS 100 06.100 Speichere neuen Akku-Inhalt in 100<br />

072 VGR 102 12.102 Ist der Akku-Inhalt größer als „0"<br />

073 SPB 068 11.068 Wenn ja, springe zurück zum Verzögern<br />

100 00.240 Zählerzelle<br />

101 00.001 Schrittweite<br />

102 00.000 Vergleichszahl<br />

Zu den besonderen Künsten des Programmierers<br />

gehört eine optimale Ausnutzung des vorhandenen<br />

Speicherplatzes. Mit der Angabe einiger Tricks<br />

wollen wir Sie nachfolgend in die Geheimnisse der<br />

Programm-Optimierung einweihen.<br />

Zuerst eine goldene Regel. Machen Sie sich bei<br />

der Entwicklung eines Programmes ein exaktes<br />

Listing und versuchen Sie nicht, einen Teil des<br />

Programms „aus dem Kopf" dem Computer einzu­<br />

geben. Wir können Ihnen versichern, daß dies<br />

meistens schiefgeht. Keinesfalls schafft man es je­<br />

doch dergestalt „freihändig", die günstigste Mög­<br />

lichkeit zu überblicken (zum Thema „eigene Pro­<br />

grammentwicklung" siehe Kapitel 1.78).<br />

Benutzen Sie für verschiedene Programmteile<br />

wenn möglich denselben Datenbereich (Datenbe­<br />

reich siehe Kapitel 1.45). Wenn Sie also beispiels­<br />

weise im Zuge eines Programms mehrmals die<br />

gleiche Schrittweite (Schrittweite siehe Kapitel 1.45)<br />

benötigen, so reicht es aus, wenn sie im Datenbe­<br />

reich einmal hinterlegt ist. Sinngemäß gilt das na­<br />

türlich für alle Zahlenwerte, die in einem Programm<br />

auftauchen können.<br />

62<br />

Wenn Sie die benötigten Datenspeicherzellen mit­<br />

zählen, brauchen Sie für die einminütige Verzöge­<br />

rung nur noch 9 Speicherzellen! Übrigens: Würden<br />

Sie das obige Programm testen, könnten Sie fest­<br />

stellen, daß die erzielte Verzögerungszeit in Wirk­<br />

lichkeit eine Minute und acht Sekunden beträgt.<br />

Des Rätsels Lösung: Der Computer braucht zur<br />

Ausführung der Befehle LDA, SUB, ABS, VGR und<br />

SPB natürlich auch eine - wenn auch äußerst ge­<br />

ringe - Zeit. Da die Verzögerungsschleife aber<br />

240mal durchlaufen wird, schlägt diese Zeit mit vol­<br />

len 8 Sekunden zu Buche (siehe auch Kapitel 1.77).<br />

Abhilfe: machen Sie die Verzögerungszeit kürzer<br />

(z.B.: VZG 217).<br />

Vermeiden Sie unnötige „Transportbefehle" wie<br />

LDA, ABS, LIA, AIS und AKO. Wenn Sie also bei­<br />

spielsweise eine Information von einem Port in den<br />

Akku geholt haben, lassen Sie diese auch sofort<br />

verarbeiten, anstatt sie erst einmal in einer Spei­<br />

cherzelle des Datenbereiches „aufzubewahren".<br />

Meistens gewinnen Sie mit derartigen Überlegun­<br />

gen höchstens ein, zwei Speicherzellen. Aber ein<br />

einfallsreiches Programm, das Sie entwickelt ha-

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!