Genre: | Ein Lernprogramm von Acornsoft |
Publisher: | Acornsoft |
Cover Art Language: | English |
Machine Compatibility: | BBC Model B |
Release: | Professionally released on Cassette |
Available For: | Acorn Atom, Acorn Electron, BBC Model A & B & BBC Model B |
Compatible Emulators: | BeebEm (PC (Windows)) PcBBC (PC (MS-DOS)) Model B Emulator (PC (Windows)) |
Original Release Date: | 1st February 1984 |
Original Release Price: | £9.95 |
Market Valuation: | £4.13 (How Is This Calculated?) |
Item Weight: | 160g |
Box Type: | Cardboard Box (Decorative) |
Author(s): | Tim Dobson & Paul Beverley |
There are 0 other items featuring this same game (that we know about!). Click any of them for their details.
Unfortunately no-one is currently selling this item.
Worried you're being ripped off? Closing prices on eBay can help you decide what a reasonable price is for a particular item.
Should be useful to instructors and those already knowing what machine code is all about, though the latter may well prefer one of the fully blown monitor programs with more facilities. Read Review
Für den ACORN-British Broadcasting Corporation Microcomputer Modell B
Autor: Tim Dobson (nach einem Originalprogramm von Paul Beverley)
PEEKO
Fünf Demonstrationsprogramme:
COUNT
COPY
ADD
FACTOR
PRIMES
Um das Programm zu laden und ablaufen zu lassen, legen Sie die Kassette in den Kassetten-Rekorder, tippen
CHAIN "PEEKO"
ein und drücken die RETURN-Taste; daraufhin erscheint die 'Searching' Anzeige am Bildschirm. Drücken Sie nun die PLAY-Taste Ihres KassettenRekorders und warten Sie, bis das Programm geladen ist. Die Titelseite benötigt weniger als eine Minute dazu, das Hauptprogramm weitere drei Minuten. Das Programm beginnt, sobald der Ladevorgang abgeschlossen ist.
Entnehmen Sie bitte die genauen Anleitungen für den Peeko-Computer und die fünf Demonstrationsprogramme der beigelegten Bedienungsanleitung!
Dieses BASIC-Simulationsprogramm wurde geschaffen, um dem Anfänger eine Vorstellung zu vermitteln, wie ein Mikroprozessor im Sinne von Datenverarbeitung und -bewegung arbeitet. Insbesondere wird demonstriert, daß jedes gegebene Byte von Daten im Gehirn eines Prozessors sein könnte:
Der simulierte Prozessor verfügt über einen 80 Byte-Speicher, wobei jedes einzelne Byte eine Dezimalstelle enthalten kann. Der Inhalt des Speichers ist immer sichtbar, ebenso der Inhalt des Akkumulators und der 'carry flag'.
Der Befehlsvorrat ist auf zehn begrenzt, wobei sich der Großteil auf die 6502 Befehle bezieht. Sollte es erforderlich sein, könnten die zehn Befehle, die zum Ablauf jedes beliebigen Programmes angewandt werden, gegen AlternativBefehle ausgetauscht werden. Das Ausbessern der in den Programmen enthaltenen Fehler wird stark erleichtert, da die Möglichkeit besteht, die Programme Schritt für Schritt ablaufen zu lassen, wobei vom Positionsanzeiger der als nächstes auszuführende Befehl angezeigt wird.
Wenn Sie den Peeko-Computer und alle seine Möglichkeiten einmal verstanden haben, bedarf es nur noch eines kleinen Schrittes, um Maschinen-Code Programme im 6502 Code zu schreiben, die eine neue Reihe von schnellablaufenden Möglichkeiten für den ACORN-British Broadcasting Corporation Microcomputer eröffnen.
Wenn Sie das Programm Peeko-Computer ablaufen lassen, wird der sogenannte 'Monitor aktiviert. Die Monitor-Befehle sind einzelne Tastenanschläge:
0-9
Das Drücken einer Zifferntaste modifiziert den Inhalt der durch den Positionsanzeiger angezeigten Speicherstelle. Der Positionsanzeiger geht danach auf die nächste Speicherstelle über. Zum besseren Verständnis wird der Abkürzungscode des durchzuführenden Befehles angezeigt.
G (GO)
Veranlaßt den Peeko-Computer das in seinem Speicher befindliche Programm auszuführen, bei der Speicherstelle Null beginnend. Das Programm läuft solange weiter, bis es auf einen BRK-Befehl trifft oder vom Benützer E (ESCAPE) eingetippt wird. Wie jeder Befehl durchgeführt wird, wird dessen Kurzform gleichzeitig angezeigt.
F (FAST)
Ähnlich wie G, doch das Programm läuft schneller. E (ESCAPE) Im RUN-Modus stoppt E die Ausführung des Programmes und bewirkt die Rückkehr zum FERTIG-Modus.
LEERTASTE
Ermöglicht die stufenweise Ausführung des Programmes. Durch wiederholtes Drücken der Leertaste werden aufeinanderfolgende Befehle durchgeführt und deren Kurzform angezeigt. Der Positionsanzeiger kann mit Hilfe der Positionsanzeiger-Tasten des ACORN-British Broadcasting Corporation Microcomputers dirigiert werden.
O (ORIGIN)
Bringt den Positionsanzeiger zur Speicherstelle Null zurück.
S (SPEICHERE)
Ermöglicht das Speichern der Programme in den Speicher des ACORN-British Broadcasting Corporation Microcomputers und auf Kassette. Das S wird von einer einstelligen Zahl zwischen 0 und 9 gefolgt. O bedeutet Kassette und 1 - 9 kennzeichnet den Speicherbereich, auf den das Programm versetzt wird. Beim Speichern auf Kassette stellt der Peeko-Monitor die Frage nach dem Dateinamen und gibt weitere Anweisungen.
L (LADE)
Gefolgt von einer einstelligen Zahl, bewirkt das Laden des jeweiligen Programmes vom Speicher des ACORNBritish Broadcasting Corporation Microcomputers oder von der Kassette in den Peeko-Computer.
B (BEFEHL)
Ermöglicht die Änderung des Befehlsvorrats für den Peeko-Computer. Zusätzlich zu den zehn Standardbefehlen existieren zehn Alternativ-Befehle, die jederzeit beliebige Standardbefehle ersetzen können. In diesem Modus wird durch die Eingabe S der Standardbefehlsvorrat wieder aktiviert.
D (DRUCKE)
Überträgt das Programm im Peeko-Computer auf den Drucker. Es wird in doppelter Buchstabenbreite auf einem ACORN GP80 ausgedruckt.
N (NÄCHSTER BEFEHL)
Bewirkt den stufenweisen Programmablauf, Befehl für Befehl, wobei jeweils die entsprechende Kurzform angezeigt wird.
Der Mikroprozessor hält diese Informationen in speziellen Speicherplätzen, die im Englischen 'flags' genannt werden. Eine solche 'flag' besteht aus einer binären Einerstelle - einem 'bit, welches entweder eine 1 oder 0 beinhalten kann. Wenn also die zuletzt durchgeführte Kalkulation Null ergab, wird das relevante Bit, die 'zero-flag’, eine 1 enthalten. Wenn hingegen das Resultat nicht Null war, wird es eine 0 enthalten. In genau der gleichen Art und Weise wird, wenn die letzte Kalkulation eine Zahl ergab, die zu groß für den Akkumulator war (bei Peeko-Computer jede Zahl, die den Wert 9 übersteigt), dasjenige Bit, das dieses Faktum aufzeichnet, die 'carry flag', eine 1 enthalten.
Jeder Befehl wird durch eine drei-Buchstaben-Abkürzung dargestellt; z. B. steht LDA für den Befehl 'Load accumulator (Lade Akkumulator). Den einzelnen Befehlen müssen verschiedene Informationen folgen:
Der Peeko-Computer Standardbefehlsvorrat lautet:
Code | Kurzform | Erläuterung |
0 | BRK | Programmstop (Maschinen-Code Programm) (Break from program to monitor) |
1 | LDA xx | Lade Akkumulator mit dem Inhalt der Speicherstelle xx (Load accumulator from location xx) |
2 | STA xx | Speichere Akkumulator auf die Speicherstelle xx (Store accumulator to location xx) |
3 | CLC | Setze 'carry' auf Null (Clear carry to zero) |
4 | ADC xx | Addiere den Inhalt der Speicherstelle xx zum Akkumulator mit carry' (Add the contents of location xx to the accumulator with carry) |
5 | DEC xx | Vermindere den Inhalt der Speicherstelle xx um eins (Decrement the contents of location xx) |
6 | INC xx | Erhöhe den Inhalt der Speicherstelle xx um eins (Increment the contents of location xx) |
7 | LDA # x | Lade Akkumulator mit dem Wert x (Load accumulator immediately with x) |
8 | JMP xx | Springe auf xx (Jump to xx) |
9 | JNE xx | Springe auf xx falls voriges Resultat nicht gleich Null ist: die 'zero flag' ist auf Null gesetzt (Jump to xx if previous result not equal to zero: zero flag clear) |
Ein Programm besteht aus einer Serie von Befehlen, die der Prozessor ausführt, Befehl für Befehl, bei der niederwertigen Adresse beginnend, bis er auf einen BRK-Befehl stößt. Die 'Jump’-Befehle wurden geschaffen, um den Prozessor zu veranlassen, seinen normalen Ablauf der Ausführung zu unterbrechen, und sich seinen nächsten Befehl von einer anderen spezifizierten Adresse zu holen.
Das folgende Kapitel erläutert die Anwendung der Befehle für den PeekoComputer. Ein Großteil der Befehle wird durch ein Demonstrationsprogramm eingeführt. Jedes Programm wird als Serie von Befehlen in deren Kurzform aufgelistet. In den meisten Fällen zeigt eine Bildschirmkopie das aufgelistete Programm im obersten Bildschirmbereich, und die Daten, oder den Benützer 'INPUT', im unteren Bereich.
Speicherstelle | Kurzbefehl | Code |
00 | CLC | 3 |
01 | LDA 70 | 1 0 7 |
04 | ADC 71 | 4 1 7 |
07 | STA 72 | 2 2 7 |
10 | BRK | 0 |
Tippen Sie zuerst das Programm ein, mit dem 'Clear carry' Code (CLC) an der Speicherstelle 00 beginnend.
Beachten Sie den Aufbau der einzelnen Befehle in der Mitte des oberen Bildschirmbereiches des Peeko-Computers.
Geben Sie als nächstes die zwei zu addierenden Zahlen an den Speicherstellen 70 und 71 ein. Dirigieren Sie den Positionsanzeiger mit Hilfe der Positionsanzeigertasten an diese Stellen.
Drücken Sie für den Programmablauf die Leertaste, um in den Ein-StufenModus zu gelangen.
Das zweite Drücken der Leertaste bewirkt die Ausführung des ersten Befehls, CLC, der die 'carry flag auf Null setzt. Der nächste Befehl, LDA 70, lädt den Inhalt der Speicherstelle 70 in den Akkumulator. Der Befehl ADC addiert den Inhalt von 71 zum Akkumulator mit der Null, die in der 'carry flag' ist, und versetzt das Ergebnis in den Akkumulator. Sodann wird STA das Resultat auf die Speicherstelle 72 speichern. BRK bewirkt schließlich den Programmstop.
Falls die ausgewählten Zahlen aufaddiert 10 oder mehr ergeben, wird man merken, daß 72 nur die Einerstelle der Summe enthält, und daß die 'carry flag' auf 1 gesetzt wird. Beim nächsten Beispiel werden mit Hilfe der 'carry flag' zwei zweistellige Zahlen addiert.
Durch Eintippen von G oder F kann das Programm ohne Ein-Stufen Ablauf betrieben werden.
Hier werden die Zahlen in 70,71 und 72,73 addiert und die Summe auf 74,75,76 übertragen.
Speicherstelle | Kurzbefehl | Code |
00 | CLC | 3 |
01 | LDA 71 | 1 1 7 |
04 | ADC 73 | 4 3 7 |
07 | STA 76 | 2 6 7 |
10 | LDA 70 | 1 0 7 |
13 | ADC 72 | 4 2 7 |
16 | STA 75 | 2 5 7 |
19 | LDA #0 | 7 0 |
21 | ADC 20 | 4 0 2 |
24 | STA 74 | 2 4 7 |
27 | DRK | 0 |
In diesem Programm wird ein neuer Befehl angewandt: LDA #, durch den der Akkumulator umgehend mit dem nächsten Byte im Programm geladen wird.
Die Befehle auf den Speicheradressen 19,21 und 24 haben die Aufgabe, die Hunderterstelle der Summe auf 0 oder 1 zu setzen, abhängig vom Stand der 'carry flag' nach der Addition der Zehnerstellen. Der Befehl 'Load accumulator immediate' (LDA #) auf Speicherstelle 19 lädt einen Wert von 0, der, addiert mit der durch den bereits ausgeführten Befehl 'Add with carry' (ADC) auf eins gesetzten 'carry flag’, das richtige Ergebnis liefert.
Erstellen Sie unter Anwendung von LDA, STA, ADC und CLC ein Programm, das die auf den Speicheradressen 70,71 und 72 befindlichen Zahlen addiert und die zweistellige Summe auf 73 und 74 speichert.
Durch das folgende Programm wird von der Speicherstelle 70, jedesmal wenn es eine kontinuierliche Schleife durchläuft, 1 abgezogen. (Beachten Sie: 0-1 = 9):
Speicherstelle | Kurzbefehl | Code |
00 | DEC 70 | 5 0 7 |
03 | JMP 00 | 8 0 0 |
Dieses Programm stellt zwei neue Befehle vor. DEC subtrahiert 1 von der spezifizierten Speicherstelle, in unserem Fall 70, und JMP veranlaßt das Programm, auf die durch die nächsten zwei Bytes spezifizierte Speicherstelle zu springen (wie GOTO in der BASIC-Sprache). Da dieses Programm eine kontinuierliche Schleife darstellt, muss E eingetippt werden, um aus dem RUN-Modus auszusteigen. Das Eintippen von F oder G, anstatt des Drückens der Leertaste, bewirkt, daß das Programm weiterläuft, ohne nach jedem Befehl zu stoppen.
Dieses Programm steht als Datei COUNT auf der Kassette zur Verfügung. Es subtrahiert die zwei Zahlen auf 70 und 71 bis zehn.
Speicherstelle | Kurzbefehl | Code |
00 | DEC 71 | 5 1 7 |
03 | JNE 00 | 9 0 0 |
06 | DEC 70 | 5 0 7 |
09 | JNE 00 | 9 0 0 |
12 | BRK | 0 |
70 | 9 | |
71 | 9 |
Beim schrittweisen Ablaufenlassen dieses Programmes wird Ihnen auffallen, daß die 'zero flag' von 0 auf 1 wechselt, wenn die Speicherstelle 71 Null wird. Die 'zero flag' wird immer dann auf eins gesetzt, wenn eine arithmetische Anweisung ein Null-Resultat ergibt, andernfalls wird sie auf Null gesetzt.
Die JNE-Anweisung ist ähnlich dem JMP mit der Ausnahme, daß der Sprung nur dann ausgeführt wird, wenn das vorangehende Resultat ungleich 0 war. Dieser Befehl veranlaßt das Programm auf 0 herunterzuzählen.
Die INC-Anweisung hat eine ähnliche Wirkung wie DEC mit der Ausnahme, daß es 1 zur nächsten Adresse hinzuzählt. Ebenso wird sie die 'zero flag' auf eins setzen, wenn das Resultat 0 ist. Wenn man im vorangehenden Programm DEC (Befehl 5) durch INC (Befehl 6) ersetzt und 70 und 71 auf Null setzt, wird das Programm bis (1)00 zählen.
Schreiben Sie ein Programm, das von 99 auf 0 herunterzählt und wieder hinauf bis (1)00 in einer fortlaufenden Schleife.
Der Standard-Befehlsvorrat besteht aus den bisher diskutierten Befehlen. Es existieren jedoch weitere zehn alternative Anweisungen, welche jeden einzelnen der Standardbefehle ersetzen können. Wenn Sie den Befehl 'B' eintippen, erscheint ein Menu, das Ihnen die Auswahl der Nummer jenes Befehles, den Sie ersetzen wollen, sowie die Nummer des dafür einzusetzenden alternativen Befehles ermöglicht.
Diese Möglichkeit, den Standard-Befehlsvorrat zu ändern, macht den PeekoComputer sehr anpassungsfähig und schafft die Voraussetzung zur Programmerstellung für viele Aufgaben trotz seiner begrenzten Programmgröße. Der Großteil dieses Alternativ-Befehlsvorrats kann sehr einfach erklärt werden, da er in der Funktionsweise dem Standard-Befehlsvorrat sehr ähnlich ist.
Alternativer Befehlsvorrat:
Kurzform | Beschreibung |
SEC | Setze 'carry flag auf eins (Set carry to 1) |
SBC xx | Subtrahiere den Inhalt von xx vom Akkumulator mit 'carry' (Subtract contents of xx from the accumulator with carry) |
CMP # x | Vergleiche den Akkumulator mit dem Wert x. Falls sie gleich sind, setze die 'zero flag' auf eins, setze andernfalls die 'zero flag' auf Null (Compare the accumulator immediately with x. If they are equal set zero flag, otherwise clear zero flag) |
JCC xx | Springe auf xx falls 'carry flag' auf Null gesetzt (Jump to xx if carry is clear) |
JCS xx | Springe auf xx falls 'carry flag' auf eins gesetzt (Jump to xx if carry is set) |
JEQ xx | Springe auf xx falls 'zero flag' gesetzt (Jump to xx if zero flag is set) |
DEC A | Subtrahiere 1 vom Akkumulator (Subtract one from the accumulator) |
INC A | Addiere 1 zum Akkumulator (Add one to the accumulator) |
LDA (xx) | Lädt den Akkumulator mit dem Inhalt der durch xx und xx+1 identifizierten Speicherstelle |
STA (xx) | Arbeitet in ähnlicher Weise wie LDA (xx), es wird dabei der Inhalt des Akkumulators auf die durch xx und xx+1 identifizierte Speicherstelle gespeichert |
Die zwei letzten zusätzlichen Befehle stellen ein indirektes Laden und Speichern dar. Sie sind komplizierter als die anderen Befehle und werden im Beispiel 6 noch ausführlicher behandelt.
In den nächsten fünf Programmen wurden einige dieser alternativen Befehle eingebaut. Bevor sie eingegeben werden, sollten die Standard-Befehle gegen die erforderlichen Befehle, die bei jedem Beispiel angeführt sind, ausgetauscht werden.
Im Befehlsvorrat auszutauschen:
3 SEC
4 SBC
Speicherstelle | Kurzbefehl | Code |
00 | SEC | 3 |
01 | LDA 71 | 1 1 7 |
04 | SBC 73 | 4 3 7 |
07 | STA 75 | 2 5 7 |
10 | LDA 70 | 1 0 7 |
13 | SBC 72 | 4 2 7 |
16 | STA 74 | 2 4 7 |
19 | BRK | 0 |
Hier wird (70,71) - (72,73) berechnet und das Ergebnis auf 74,75 gesetzt. Die 'carry flag' wurde auf eins gesetzt. Falls sie weiterhin auf eins gesetzt bleibt, deutet dies auf ein positives Resultat hin. Falls aber die 'carry flag' am Ende der Berechnung 0 enthält, war 72,73 grösser als 70,71, und folglich kommt es zu einem negativen Ergebnis.
Erstellen Sie ein Programm, das zwei einstellige Zahlen durch ununterbrochene Addition multipliziert.
Im Befehlsvorrat auszutauschen:
1 LDA (
2 STA (
Bei diesem Programm wird indirektes Adressieren angewandt. Angenommen die Speicherstellen 70 und 71 waren:
und Speicherstelle 50 war:
so würde LDA (70) den Akkumulator von der Speicherstelle 50 (da 70,71 50 enthält) laden und daher mit 8 geladen werden.
Speicherstelle | Kurzbefehl | Code |
00 | LDA ( 70 ) | 1 0 7 |
03 | STA ( 72 ) | 2 2 7 |
06 | BRK | 0 |
70 | 0 | |
71 | 6 | |
72 | 0 | |
73 | 5 |
Wenn Sie dieses kurze Programm ablaufen lassen, werden Sie sehen, wie indirektes Adressieren angewandt werden kann, um den Inhalt einer Adresse auf eine andere zu übertragen, bei unserem Beispiel von 60 auf 50.
Das Programm zu diesem Beispiel steht als Datei COPY auf der Kassette zur Verfügung und kann durch den Befehl 'LO' in den Peeko-Computer geladen werden.
Im Befehlsvorrat auszutauschen:
1 LDA (
2 STA (
Speicherstelle | Kurzbefehl | Code |
00 | LDA ( 70 ) | 1 0 7 |
03 | STA ( 72 ) | 2 2 7 |
06 | INC 70 | 6 0 7 |
09 | INC 72 | 6 2 7 |
12 | JNE 00 | 9 0 0 |
15 | BRK | 0 |
70 | 0 | |
71 | 5 | |
72 | 0 | |
73 | 6 |
Dieses Beispiel zeigt, wie einfach durch indirektes Adressieren der Zugang zu einem Block von Daten wird. Das Programm kopiert eine Datenzeile, bei der durch 70,71 identifizierten Speicherstelle beginnend, auf die durch 72,73 identifizierte Speicherstelle. Die Speicherstellen 50 bis 59 sollten jene Daten enthalten, die auf 60 bis 69 zu kopieren sind.
Dieses Programm steht als Datei ADD auf der Kassette zur Verfügung.
Im Befehlsvorrat auszutauschen:
1 LDA (
2 STA (
7 STA
Das Programm wird zwei im Speicher befindliche Datenzeilen addieren und die Summe speichern.
Speicherstelle | Kurzbefehl | Code |
00 | CLC | 3 |
01 | LDA ( 78 ) | 1 8 7 |
04 | STA 73 | 7 3 7 |
07 | LDA ( 76 ) | 1 6 7 |
10 | ADC 73 | 4 3 7 |
13 | STA ( 74 ) | 2 4 7 |
16 | DEC 78 | 5 8 7 |
19 | DEC 76 | 5 6 7 |
22 | DEC 74 | 5 4 7 |
25 | JNE 01 | 9 1 0 |
28 | BRK | 0 |
74 | 9 | |
75 | 6 | |
76 | 9 | |
77 | 5 | |
78 | 9 | |
79 | 4 |
Auch bei diesem Programm kommt indirektes Adressieren in erhöhtem Ausmaß zur Anwendung.
Dieses Programm steht als Datei FACTOR auf der Kassette zur Verfügung.
Im Befehlsvorrat auszutauschen:
3 SEC
4 SBC
8 JCC
Dieses Programm findet den größten Divisionsfaktor (kleiner als 10) einer auf 78,79 befindlichen zweistelligen Zahl.
Speicherstelle | Kurzbefehl | Code |
00 | LDA 78 | 1 8 7 |
03 | STA 28 | 2 8 2 |
06 | LDA 79 | 1 9 7 |
09 | STA 20 | 2 0 2 |
12 | DEC 77 | 5 7 7 |
15 | SEC | 3 |
16 | JCC 00 | 8 0 0 |
19 | LDA #0 | 7 0 |
21 | SBC 77 | 4 7 7 |
24 | STA 20 | 2 0 2 |
27 | LDA #0 | 7 0 |
29 | SBC 76 | 4 6 7 |
32 | STA 28 | 2 8 2 |
35 | JNE 16 | 9 6 1 |
38 | LDA 20 | 1 0 2 |
41 | JNE 16 | 9 6 1 |
44 | BRK | 0 |
76 | 0 | |
77 | 0 |
Die zu dividierende Zahl sollte auf 78,79 eingetragen werden.
Programmieren Sie den Peeko-Computer so, daß eine zweistellige Zahl durch eine einstellige dividiert werden kann. Dazu werden sicherlich die Befehle SBC und SEC, wie vielleicht einige andere Befehle, erforderlich sein. Orientieren Sie sich am Programm FACTOR (Beispiel 9).
Dieses Programm steht als Datei PRIMES auf der Kassette zur Verfügung.
Im Befehlsvorrat auszutauschen:
3 SEC
4 SBC
5 JCS
8 JEQ
Speicherstelle | Kurzbefehl | Code |
00 | LDA #0 | 7 0 |
02 | STA 74 | 2 4 7 |
05 | INC 79 | 6 9 7 |
08 | JNE 14 | 9 4 1 |
11 | INC 78 | 6 8 7 |
14 | LDA #2 | 7 2 |
16 | STA 75 | 2 5 7 |
19 | LDA 79 | 1 9 7 |
22 | STA 77 | 2 7 7 |
25 | LDA 78 | 1 8 7 |
28 | STA 76 | 2 6 7 |
31 | SEC | 3 |
32 | LDA 77 | 1 7 7 |
35 | SBC 75 | 4 5 7 |
38 | STA 77 | 2 7 7 |
41 | LDA 76 | 1 6 7 |
44 | SBC 74 | 4 4 7 |
47 | STA 76 | 2 6 7 |
50 | JNE 59 | 9 9 5 |
53 | LDA 77 | 1 7 7 |
56 | JEQ 05 | 8 5 0 |
59 | JCS 32 | 5 2 3 |
62 | INC 75 | 6 5 7 |
65 | JNE 19 | 9 9 1 |
68 | BRK | 0 |
78 | 0 | |
79 | 9 |
Aufgabe 1
Speicherstelle | Kurzbefehl | Code |
00 | CLC | 3 |
01 | LDA 70 | 1 0 7 |
04 | ADC 71 | 4 1 7 |
07 | STA 74 | 2 4 7 |
10 | LDA #0 | 7 0 |
12 | ADC 11 | 4 1 1 |
15 | STA 73 | 2 3 7 |
18 | LDA 74 | 1 4 7 |
21 | ADC 72 | 4 2 7 |
24 | STA 74 | 2 4 7 |
27 | LDA 73 | 1 3 7 |
30 | ADC 11 | 4 1 1 |
33 | STA 73 | 2 3 7 |
36 | BRK | 0 |
Aufgabe 2
Speicherstelle | Kurzbefehl | Code |
00 | DEC 71 | 5 1 7 |
03 | JNE 00 | 9 0 0 |
06 | DEC 70 | 5 0 7 |
09 | JNE 00 | 9 0 0 |
12 | INC 71 | 6 1 7 |
15 | JNE 12 | 9 2 1 |
18 | INC 70 | 6 0 7 |
21 | JNE 12 | 9 2 1 |
24 | JMP 00 | 8 0 0 |
Dieses Programm zählt die Speicherstellen 70 und 71 von unten nach oben und von oben nach unten durch. Sie werden sicherlich feststellen, daß es beim Herunterzählen nicht bei 00 stoppt, sondern beim Abzählen von 10 (d.h. 12 11 10 00 01 02 ...). Sie werden diesen Fehler später beheben können, wenn Sie über die 'carry flag' und die damit zusammenhängenden 'bedingten Sprünge' Bescheid wissen.
Aufgabe 3
Speicherstelle | Kurzbefehl | Code |
00 | LDA 71 | 1 1 7 |
03 | STA 74 | 2 4 7 |
06 | CLC | 3 |
07 | LDA 70 | 1 0 7 |
10 | ADC 73 | 4 3 7 |
13 | STA 73 | 2 3 7 |
16 | LDA #0 | 7 0 |
18 | ADC 72 | 4 2 7 |
21 | STA 72 | 2 2 7 |
24 | DEC 74 | 5 4 7 |
27 | JNE 06 | 9 6 0 |
30 | BRK | 0 |
Hier wird der Inhalt von 70 und 71 multipliziert und das Ergebnis auf 72 und 73 übertragen.
Aufgabe 4
Im Befehlsvorrat auszutauschen:
3 SEC
4 SBC
9 JCS
Speicherstelle | Kurzbefehl | Code |
00 | LDA 74 | 1 4 7 |
03 | STA 78 | 2 8 7 |
06 | LDA 75 | 1 5 7 |
09 | STA 79 | 2 9 7 |
12 | INC 77 | 6 7 7 |
15 | LDA 79 | 1 9 7 |
18 | SEC | 3 |
19 | SEC 76 | 4 6 7 |
22 | STA 79 | 2 9 7 |
25 | LDA 78 | 1 8 7 |
28 | SBC 70 | 4 0 7 |
31 | STA 78 | 2 8 7 |
34 | JCS 12 | 9 2 1 |
37 | DEC 77 | 5 7 7 |
Hier wird der Inhalt von 74 und 75 durch den Inhalt von 76 dividiert, und das Ergebnis auf 77 übertragen. 78 und 79 werden in der Berechnung angewandt.
0-9 | Eingabe des Bytes in den Speicher |
Leertaste | Stufenweise Durchführung des Programmes |
E | Unterbrechung des Programmablaufes |
F | Beschleunigte Programmausführung |
G | Go - Programmausführung |
B | Befehlsvorrat Laden des Programmes vom Speicher |
N | Nächster Befehl |
O | Ausgangspunkt - Positionsanzeiger auf 00 zurück |
D | Ausdrucken des Bildschirmtextes |
S | Speichern des Programmes in den Speicher |
00 BRK | Programmstop |
01 LDA xx | Lade Akkumulator |
02 STA xx | Speichere Akkumulator |
03 CLC | Setze 'carry flag auf Null |
04 ADC xx | Addiere mit 'carry' |
05 DEC xx | Vermindere Speicherstelle um eins |
06 INC xx | Erhöhe Speicherstelle um eins |
07 LDA # x | Lade Akkumulator mit dem Wert x |
08 JMP xx | Springe |
09 JNE xx | Springe falls nicht gleichwertig |
10 SEC | Setze 'carry flag |
11 SBC xx | Subtrahiere mit 'carry' |
12 CMP # x | Vergleiche mit dem Wert x |
13 JCC xx | Springe falls 'carry flag' auf Null gesetzt |
14 JCS xx | Springe falls 'carry flag' auf eins gesetzt |
15 JEQ xx | Springe falls gleichwertig |
16 DEC A | Vermindere Akkumulator um eins |
17 INC A | Erhöhe Akkumulator um eins |
18 LDA (xx) | Lade Akkumulator indirekt |
19 STA (xx) | Speichere Akkumulator indirekt |
Acornsoft Limited, 4a Market Hill, Cambridge CB2 3NJ, England Telephone (0223) 316039
GBE02/B
The following utilities are also available to allow you to edit the supplied screens of this game:
A digital version of this item can be downloaded right here at Everygamegoing (All our downloads are in .zip format).
Download | What It Contains |
---|---|
A digital version of Peeko-Computer suitable for BeebEm (PC (Windows)), PcBBC (PC (MS-DOS)), Model B Emulator (PC (Windows)) |
We thank you from the bottom of our hearts if you report something wrong on our site. It's the only way we can fix any problems!
You are not currently logged in so your report will be anonymous.
Change the country to update it. Click outside of this pop-up to cancel.
If you auction an item, it will no longer show in the regular shop section of the site.