CP1 Anleitung (Manual) - 8Bit-Homecomputermuseum
CP1 Anleitung (Manual) - 8Bit-Homecomputermuseum
CP1 Anleitung (Manual) - 8Bit-Homecomputermuseum
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-