Der Schneider CPC 464 bietet dem Basic-Programmierer wirklich ausgezeichnete Möglichkeiten. Dennoch wächst mit der Zeit der Wunsch, den Computer in Maschinensprache zu programmieren und auch das Betriebssystem auf Maschinenebene genauer kennenzulernen. Der folgende Maschinensprache-Monitor „MAC 464“ bietet dazu alle wichtigen Möglichkeiten und zeichnet sich außerdem durch geschickte Nutzung der Windowtechnik aus. Zusätzlich kann ausgewählt werden, ob die sich überlappenden RAM- oder ROM-Bereiche angesprochen werden. Unter Nutzung der 80 Zeichen pro Zeile und der WINDOW-Technik werden alle Befehle, die Ihnen zur Verfügung stehen, ständig angezeigt. So brauchen Sie nicht andauernd in der Anleitung nachzusehen, sondern haben die Befehle jederzeit im Auge. Sie haben insgesamt dreizehn verschiedene Befehle, die jeweils über einen einzigen Tastendruck eingegeben werden. Zum Aufbau des Bildschirms: Der Screen ist in fünf Fenster aufgeteilt: Ganz links oben ein kleines Feld, das zur Eingabe der Kennbuchstaben für Befehle dient; rechts davon und darunter ein größeres Feld, das zur Eingabe von Daten dient. Rechts oben befindet sich ein weiteres Fenster, das den jeweils ausgefuhrten Befehl im Klartext ausgibt - bzw. „Invalid Command“ bei nicht belegten Funktionen. Links unten auf dem Bildschirm ist das größte Fenster, über das der Computer alle Daten und Antworten ausgibt. Hier in alphabetischer Reihenfolge alle vorhandenen Befehle: A = ASCII Text Input Über dieses Unterprogramm kann der Speicher von der Tastatur aus mit Texten gefüllt werden. Beispiel: Startadresse = &6000 Welcher Text? Dies ist ein Probetext. (Enter) C = Change Memory Hier kann der Speicher byteweise abgeändert werden. Es können Binärzahlen, Hexzahlen oder Dezimalwerte verwendet werden. Außerdem kann der Speicher mit den Tasten „+“ und “ durchschritten werden, ohne den Inhalt einzelner Speicherzellen zu verändern. Beispiel: Startadresse = 32767 &7FFF = &00 -> 255 &8000 = &02 -> &X11001001 &8001 = &3F -> + &8002 = &34 -> &40 &8003 = &4C -> - &8002 = &40 -> (Enter) D = Disassemble Ruft einem umfangreichen Z80-Disassembler auf, der den gesamten Befehlssatz dieses Prozessors kennt - auch die Vorsatzbytes &CB, &ED und die Befehle der Indexregister IX und IY. Abweichend vom Z80-Standard benennt Schneider die Restart-Befehle mit RST0, RST1 usw. statt RST &00, RST &08 etc. Der Disassembler paßt sich beiden an und gibt aus: RST0 &00, RST1 &08, RST2 &10 usw. Als Besonderheit erkennt der Disassembler anhand des RST-Befehls, ob danach ein DW (Define Word) als Datum folgt. Dies gilt für RST1, RST2, RST3 und RST5. Durch die ungewöhnliche Programmierung wird auch eine für Basic sehr hohe Disassembler-Geschwindigkeit erreicht. Beispiel: Startadresse = &0000 Endadresse = 15 &0000 01 89 7F LD BC,&7F89 &0003 ED 49 OUT (C),C &0005 C3 80 05 JP &0580 &0008 C3 82 B9 JP &B982 &000B C3 1C B9 JP &B97C &000E C5 PUS BC &000F C9 RETF = Find Byte Durchsucht den gesamten Speicher nach einem bestimmten Byte. Alle Fundstellen werden ausgegeben. Beispiel: Startadresse = &00 Endadresse = &0F Suchwort = &B9 &000A = &B9 &000D = &B9 J = Jump to Machine Code Ruft ein Maschinprogramm im Speicher mit CALL auf. Hier ist aber Vorsicht geboten, da ein falscher Aufruf den ganzen Computer zum Abstürzen bringen kann alle Programme sind dann natürlich gelöscht! Beispiel: Startadresse = &A000 Drücken Sie hier einfach Enter oder geben Sie als Adresse &0000 ein, so wird kein Sprung ausgeführt. L= Load from Cassette Lädt eine Binärdatei von der Cassette in den Speicher. Es lassen sich aber oft keine Programme über HIMEM laden, da das Betriebssystem dies verbietet. Beispiel: Dateiname = FILE1 Startadresse = &6000 Press PLAY then any key ...M = Memory Dump Gibt einen Speicherauszug auf dem Bildschirm aus. Beispiel: Startadresse = 3 Endadresse = 3 &0000 = &01 &0001 = &89 &0002 = &7F &0003 = &EDAußerdem wird der Inhalt einer Speicherstelle auch als ASCII-Zeichen dargestellt, sofern er größer als 31 ist.N = Number conversion Nimmt eine Zahl im 2er-, 10er- oder 16er-System an und gibt sie in allen drei Formaten aus, Beispiel: Zahlenwert = 127 DEC 127 HEX &007F BIN %01111111P = Print RegistersGibt dem Inhalt aller Register der Z80-CPU aus - auch den alternativen Registersatz, die Indexregister, den Stackpointer, das Refresh-und das Interrupt-Register. Q = Quit Monitor Verläßt nach einer Sicherheitsabfrage den Monitor und springt nach Basic zurück. R = RAM/ROM-Select Da sich in den Bereichen &0000 bis &3FFF und &C000 bis &FFFF RAM und ROM überlappen, kann hier das RAM bzw. ROM eingeschaltet werden. Durch Drücken der R-Taste wechselt der Zustand in den entgegengesetzten Status, also aus RAM wird ROM-Status und umgekehrt. Auf dem Bildschirm wird dauernd der aktuelle Speicherstatus angezeigt. Folgende Befehle erlauben den wahlweisen Zugriff auf RAM oder ROM: D (Disassemble), F (Find Byte), M (Memory Dump). Somit kann auch das ROM disassembliert, gelistet und durchsucht werden. S = Save to Cassette Speichert ein Binärfile auf Cassette ab. T = Transfer Memory Verschiebt mit dem LDIR- und LDDR-Befehl ganze Speicherblökke im RAM. Hier müssen Sie entscheiden, ob mit dem unteren oder dem oberen Ende des Blocks begonnen werden soll, was wichtig ist bei sich überlappenden Bereichen. Beispiel: Von oben oder unten? 0 Quelladresse = &0000 Zieladresse = 24576 Blocklänge = &X11000101Das Programm ist größtenteils in Basic geschrieben, lediglich ein ROM-Peek (Adresse &A000), LDIR (&A00F), LDDR (&A01D) und die Registerspeicherung (&A02B) erscheinen in Maschinensprache. Der Quellcode ist nicht sonderlich interessant. Wen er trotzdem interessiert: ein Disassembler ist eingebaut!CPU
| ★ AMSTRAD CPC ★ DOWNLOAD ★ |
|
CPCrulez[Content Management System] v8.732-desktop/c Page créée en 408 millisecondes et consultée 121 foisL'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko. |
|
|