Maschinensprachenprogrammierer werden's wissen: Wenn man sich z.B. bei dieser Zeile 40 CALL HIMEM vertippt und statt einem ‘M‘ versehentlich ein ‘N‘ eingibt, ist das Dilemme groß, denn der Computer springt dann nicht wie gewünscht die höchste von Basic belegbare Adresse an, sondern Speicherzelle 0, da er ‘HINEM‘ (oder ‘HIMEN‘) als Variable ansieht, die aber den Wert 0 hat, falls sie vorher noch nicht gebraucht wurde. Und was bei einem CALL 0 passiert, weiß ja wohl jeder — nämlich ein System-Reset, was eventuell verheerende Folgen haben kann. Stellen Sie sich mal vor, Sie geben ein Programm ein, sind fast fertig, vertippen sich, ohne es zu merken, und auf einmal ist nach dem Starten des Programms alles verschwunden und der CPC befindet sich im Einschaltzustand! Das dreiteilige Programm “CALL 0” verhindert dieses. Geben Sie zunächst korrekt Listing 1 (abspeichern mit “CALL0.BAS “) oder, falls Sie einen Assembler besitzen sollten, Listing 2 ein (SAVEn mit “CALL0.ASM” und Opcod e mit “CALL0.BIN “). Danach Listing 3 eintippen und mit “CALL0.L0A” auf Disk/Kassette bringen. Starten Sie Listing 1 im Falle, daß es statt Listing 2 eingegeben wurde. Es erstellt den MC-Code ab Speicherzelle &AF00 im RAM des CPC. Das hat folgende Vorteile: - Der gesamte freie Speicher für Basic von über 42K bleibt erhalten.
- Die Routine geht nur verloren, wenn der Reset-Knopf betätigt oder der CPC ganz ausgeschaltet wird. Sie werden sehen: Bei dem sog. 3-Finger-Griff (SHIFT-CTRL-ESC) befindet sich der Code immer noch am gleichen Fleck (ab &AF00).
Danach Listing 3 starten. Dieses Programm lädt nicht nur den MC-Teil. Es POKEt auch in Zeile 50 die Zellen 0,1,2 mit neuen Werten, so daß der CPC bei einem versehentlichen CALL 0 sofort die MC-Routine anspringt; wobei ich abschließend hoffe, daß sie auch für Maschinensprache-Anfänger durch die großzügigen Kommentare in Listing 2 zu verstehen ist, die hinter den Semicolons der einzelnen Zeilen stehen, jedoch nicht eingegeben werden müssen.Variablenliste: adr Anfangsadresse der MC-Routine last Letzte Adresse der MC-Routine sum Wert eines Bytes checksum Wert einer DATA-Zeile zeile DATA-Zeile schritt Zeilenabstand i Schleifenvariable Strukturierung der Programme: a) Listing 1: 10-1 50 Copyright-Vermerk 160-370 Generieren und abspeichern des MC-Codes 380-480 MC-Datas b) Listing 2: 40-100 RAM-Einsprünge und Startadresse setzen 110-180 Bildschirmaufbau 190-220 Tastaturabfrage 230-290 Testen, ob “J” oder “N” gedrückt wurde. Falls nicht, Piepston ausgeben und zurück nach Zeile 190 springen 300-310 Ja ( “J “) wurde eingetippt, daher erfolgt ein System-Reset 320-350 Nein ( “N “) wurde eingegeben. Antwortsatz ausgeben 360-420 Programmende mit Rücksprung zu Basic 430-470 PRINT Routine 480-520 Definition der Bemerkungen c) Listing 3 ist nicht unterteilbar (ein Block)! (Jens Kahle) , SA
| ★ AMSTRAD CPC ★ DOWNLOAD ★ |
|
CPCrulez[Content Management System] v8.732-desktop/c Page créée en 464 millisecondes et consultée 729 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. |
|
|