Nikolaus Heusler Archiv

Erschienen in 64'er Magazin, Ausgabe 05/1991 · Originaldatei: 05_91.TXT

Hinweis: Dies ist das an die Redaktion eingereichte Manuskript, nicht der gedruckte Endtext. Layout, Bildunterschriften, Korrekturen und Kürzungen der Redaktion können in der veröffentlichten Fassung abweichen.

Killer-Speeder?

Ich besitze einen C 128D und bekam von meinem Freund den Floppyspeeder »Gigaload« für den C 64 geschenkt. Im C-64-Modus startete das Programm von selbst. Der Hinweistext auf dem Bildschirm gab darüber Auskunft, daß das Speederprogramm im Bereich $C000 (49152) bis $CFFF (53247) abgelegt ist. Beim Versuch, ein Programm zu laden, blieb der Computer hängen. Seitdem kann ich im C-64-Modus kein einziges Programm mehr mit dem Speeder laden, obwohl es vorher einwandfrei funktionierte. Außerdem bleibt der Computer bei der Arbeit mit bestimmten Kopierprogrammen ständig hängen. Da ich auch das CP/M-Betriebssystem nicht mehr von Diskette booten kann, setzte ich mit dem Monitor von »Final Cartridge III« den besagten Speicherbereich auf »0«. Es half aber nichts. Ich bin mit meinem Latein am Ende. Wer weiß Rat?

Falk Heinrich, Eisenhüttenstadt

Geos-Treiber für den MT-81

Im Leserforum der 64'er 3/91 haben Sie Tips und Druckerprogramme zum Mannesmann Tally 81 veröffentlicht. Ich benutze diesen Drucker mit Geos. Dazu verwende ich den Treiber »Epson FX 80(gc)« für normale Ausdrucke. Für hochwertige Druckqualität sind die Druckerprogramme zum Star NL-10 (NL-10 opti 1-3 GC) uneingeschränkt nutzbar. Der Drucker wird direkt über den Userport betrieben. Die entsprechenden DIP-Schalterstellungen:

Switch 1: on, on, off, off, on, off, off, off

Switch 2: on, off, on, on.

Rolf-Dietrich Koch, Berlin

Interface, aber welches?

Obwohl ich bereits zwei Interfaces am meinem MT-81 mit Centronics-Schnittstelle ausprobiert habe, konnte ich keine brauchbaren Ergebnisse erzielen. Wer kennt das ideale, serielle Druckerinterface zum Mannesmann Tally MT-81?

L. Lyskawa, Delitzsch

Tip zu »Crillion«

Frage von Matthias Müller in der 64'er 3/91, Seite 56: Wer weiß, wie ich beim Spiel »Crillion« unendliche Leben erhalte?

Unmittelbar nach dem Laden muß man folgendes eingeben:

POKE 2517,47

Damit erhält man immerhin 245 Leben. Das Spiel läßt sich anschließend wie gewohnt mit RUN starten.

Hilmi Sönmez, Laudenbach

Störende Wachen

Zum Adventure »Robox« aus der Reihe »64'er Extra« habe ich eine Frage: Wer weiß, wie man im Level 4 (Luftstadt) den Safe öffnen kann, ohne daß ständig die Wache kommt?

Olaf Dzwida, Hannover

Gefährliche Mission

Wer kann mir bei »Mission X-14« weiterhelfen:

— Wie kommt man am Auto vorbei, das die Straße blockiert?

— Welche Gegenstände muß ich aus dem Waffenlager mitnehmen?

— Wie komme ich durchs Tor zum Forschungsgelände?

Ralf Dudek, Nordheim

Superscanner III

Wie kann ich in Basic oder Maschinensprache die Helligkeitswerte des Superscanner III von Scanntronik abfragen?

Thies Melßen, Horsbüll

Modifizierter Pagefox

Ich möchte mein Pagefox-Modul so verändern, daß:

— entweder die Icon-Zeilen auf den Bildschirmrand geschrieben oder ganz abzuschalten sind. Damit könnte der gesamte Bildschirm genutzt werden,

— die Logik zum Unterstreichen von Text der von Printfox angeglichen wird (Unterstreichen der untersten Pixelreihe),

— das Einfärben von Sprites oder auch des MOVE-Bereichs geändert werden kann.

Wer hat bei Pagefox bereits Änderung vorgenommen und kann mir folgende Fragen beantworten:

— Wo liegen die Begrenzungen der Bitmap? Wie kann ich sie ändern, daß die Bitmap den vollen Bildschirm umfaßt?

— Wo liegt die Warteschleife zur Tastaturbedienung im Grafikmodus?

— Hat schon jemand Software-Erweiterungen im Bereich des EPROMs untergebracht, der mit $FF gefüllt ist?

Dipl-Ing. Hans Peter Kastner, Castrop-Rauxel

Printfox mit Tastendruck

Kann man Printfox so ändern, daß das Programm nach jedem neuen Zeichensatz wartet, bis eine Taste gedrückt wird? Könnte man so eine Routine auch von Diskette laden?

Christian Fenzl, A-Ottensheim

Rätsel um Filenamen gelöst

Frage von Jürgen Hamann in der 64'er 3/91, Seite 55: Obwohl der Name einer Datei auf Diskette im Variablenspeicher richtig abgelegt ist, fehlen beim Auslesen der Speicherstellen mit CHR$ die letzten Byte.

Speicherinhalte per CHR$ zu lesen ist sicher nicht falsch, führt aber durch eine Eigenart des Basic 2.0 zu unerwarteten Ergebnissen: Bei jedem Befehl, der Zeichenketten (Strings) erzeugt, braucht der C 64 den sog. temporären Stringspeicher. Im Vergleich zum normalen Speicher für Stringvariablen wird er jedoch nur dann benutzt, wenn es unbedingt nötig ist. Anschließend gibt ihn der Computer wieder frei. Auch Filenamen benutzen temporäre Strings. Die Anweisung

OPEN 2,8,2,"ABCD,S,R"

beispielsweise führt dazu, daß am Beginn des Stringspeichers (ab $BFFF abwärts) die Zeichefolge des Filenamens (hier: ABDC) abgelegt wird. Dieser Zwischenspeicherbereich wird von der nächsten Stringanweisung (also CHR$) wieder überschrieben. Es wird exakt ein Byte benötigt, um die Anweisung »CHR$« zwischenzuspeichern: dies ist der fehlende Buchstabe des Dateinamens, der vorher im temporären Bereich abgelegt wurde.

Die zweite Basic-Routine (mit PEEK) funktioniert deshalb, weil der Filename ins numerische Feld B(I) gerettet und erst danach mit CHR$ ausgegeben wird. Selbstverständlich werden auch hier die Bytes im temporären Bereich überschrieben. Folgender Einzeiler löst das Problem:

FOR I=0 TO PEEK(183)-1: POKE 780,PEEK(PEEK(187)+256*PEEK(188)+I): SYS 65490: NEXT

Diese Basic-Eingabe nimmt nicht den Umweg über CHR$, sondern bemüht die Betriebssystem-Routine CHROUT ($FFD2). Der temporäre Stringspeicher entfällt, der Filename kommt ohne Verstümmelung an.

Thomas Binder, Friedberg

Chip ist kaputt

Frage von Thomas Singer in der 64'er 3/91, Seite 55: Beim Einschalten meines C 64 erscheinen nur noch die Bildschirmfarben, sonst tut sich nichts mehr. Nur, wenn ich den Feuerknopf des Joysticks in Port 1 drücke, erscheint die Einschaltmeldung. Dafür macht der Cursor jedoch wieder nicht, was ich will. Außerdem kann man nichts mehr über die Tastatur eingeben.

Vieles deutet darauf hin, daß der Baustein CIA 1 defekt ist. Er ist direkt mit den Joystickports verbunden und hat vermutlich durch den Kurzschluß Schaden genommen. Allerdings frage ich mich, wie man sowas zwischen Audio/Video und Joystickport 2 überhaupt schafft! Die fehlende Einschaltmeldung, der viel zu schnell blinkende Cursor und das Verweigern der Tastatureingabe: Das sind alles Symptome, die bei einem zerstörten CIA 1 (Steckplatz U1) auftreten. Eine endgültige Diagnose läßt allerdings erst stellen, wenn man den Chip ausgewechselt und mit einem Logiktester untersucht hat.

Thomas Binder, Friedberg

Senkrechter Interrupt

Frage von Stephan Rupprecht in der 64'er 3/91, Seite 56: Kann man den Bildschirm mit einem Rasterzeileninterrupt nicht nur waagrecht, sondern auch senkrecht teilen?

Eine direkte Abfrage der horizontalen Position des Rasterstrahl ist leider nicht möglich. Vielmehr muß man durch geschicktes Timing dafür sorgen, daß der Strahl exakt eine bestimmte Position innerhalb der Rasterzeile erreicht hat. Dazu erschien eine Routine in der 64'er 6/89, Seite 90. Anschließend sollte eine weitere Assembler-Routine folgen, die in jeder Rasterzeile für die gewünschte Umschaltung sorgt (auch sie muß exakt getimet sein).

Dieses Verfahren hat jedoch einige Nachteile: Die Umschaltung muß in jeder Rasterzeile erfolgen, in der z.B. Text und Grafik gemischt auftreten sollen. Der Computer ist in dieser Zeit für andere Aufgaben blockiert — er verliert eine Menge Geschwindigkeit. Außerdem muß man berücksichtigen, daß bei gleichzeitiger Darstellung von Text und Grafik ein bis zwei Register bis zu zweimal pro Rasterzeile manipuliert werden muß. Wenn Sie bedenken, daß dem C 64 in einer Rasterzeile nur sehr wenig Zeit bleibt und vier Umschaltungen vorzunehmen sind, werden Sie schnell zu dem Schluß kommen, daß brauchbare Ergebnisse nahezu unmöglich sind. Der erforderliche Programmieraufwand steht in keinem Verhältnis zum Ergebnis.

Thomas Binder, Friedberg

Mastertext und Citizen-Drucker

Das Textverarbeitungsprogramm »Mastertext 128« aus dem 128'er-Sonderheft 29 hat bislang problemlos mit meinem Drucker Star LC-10-C zusammengearbeitet. Jetzt besitze ich den Citizen Swift 24 mit Parallelanschluß. Leider sind alle Versuche fehlgeschlagen, eine Centronics-Schnittstelle für diesen Drucker zu installieren. Obwohl die Ausgabe auf Drucker gewählt wurde, erscheint der Text nur in einem Window auf dem Bildschirm. Mit Geos 128 funktioniert der Citizen jedoch tadellos. Was mache ich falsch?

Martin Widmann, Schwabhausen

Der Präsident mit Amica Paint und Geos

Ich suche einen Druckertreiber zum Malprogamm Amica Paint, der meinen Epson-kompatiblen Drucker Präsident 6320 unterstützt. Obwohl dieses Gerät kompatibel zum Epson FX-80 ist, ist mir bislang noch kein Grafikausdruck gelungen.

Louis Callebaut, E-Porto Cristo (Mallorca)

Ich benutze den Präsident 6320 mit Geos 2.0. Verwende ich den Druckertreiber »Commodore Compatible«, funktioniert der Ausdruck, aber nur in Standardschrift. Schalte ich auf NLQ um, bringt der Drucker keine Umlaute und auch nicht alle Fonts! In der 64'er 2/91 steht, daß man für den Präsident 6325 den Epson-Treiber verwenden kann. Bei mir erscheint jedoch die Meldung »Drucker nicht ansprechbar«. Läßt sich mein Problem mit einer entsprechenden DIP-Schaltereinstellung lösen oder brauche ich spezielle Treibersoftware für den 6320?

Harald Ladusch, Nienhagen

Farbdruck mit Geos

Ich besitze den Star LC-10 Colour. Wie erhalte ich Farbausdrucke mit Geopaint? Wie kann ich mit Geowrite kursiv ausdrucken? Wie müssen beim Parallelinterface 92000/G, Version 6, die DIP-Schalter eingestellt werden?

Matthias Winkelmann, Laatzen

Verschluckter Rand

Wenn ich Grafiken von Geopaint mit meinem Seikosha SP 180 VC (Treiber: !!SP-180 VC) auf Papier ausgebe, wird der rechte Rand nicht mitgedruckt. Wie muß ich das Treiberprogramm ändern? Die Änderung der Cards bei der Seitenbreite im Printer Creator brachte nichts.

Heiko Kremling, Schneverdingen

Tauschgeschäft

Ich besitze den C 64 (Brotkasten) und möchte ihn gern gegen einen C 64-II (Flachmann) tauschen. Wer hat Interesse?

Steffen Kahlert, Eisleben

Wer kennt das Fossil?

Vor einiger Zeit habe ich einen alten Siemens-Computer ohne Handbuch geschenkt bekommen. Beim genauerem Betrachten ist es nur eine Tastatur und ein Grünmonitor (80-Zeichen-Bilddarstellung), der einen Schlüsselschalter besitzt. Unter dem Bildschirm befindet sich eine Klappe. Rechts steht »Siemens« auf einem orangen Plastikstreifen, links »9750«. Öffnet man die Klappe des Monitors, findet man rechts einen Aufkleber mit der Aufschrift: PROD-/FAB-NR. D-9750 4000773, in der Mitte steht: HOS A8 B2 DSG 9750-91 S26381-416-V91. Die Tastatur setzt sich aus 85 normalen und 21 Sondertasten zusammen. Gibt man etwas ein und drückt RETURN, passiert nichts. Wer weiß etwas über dieses seltsame Gerät?

Tobias Pölleth, Freystadt

Programme wiederbeleben

Ab und zu stürzt mein C 64 ab. Ärgerlich, wenn's beim Abtippen eines Programms passiert. Ich betätige den Resettaster und beginne von vorne. Mir ist aber bekannt, daß gespeicherte Daten durch einen Reset nicht gelöscht werden. Das geschieht nur beim Ausschalten des Computers. Gibt es eine Formel, ähnlich den SYS-Zahlen oder Trainer-POKES, die Programme wieder zum Leben erwecken?

Daniel Christoph, Duisburg-Rheinhausen

Abgesehen von einer großen Anzahl RENEW- und OLD-Routinen in Maschinensprache, läßt sich ein Basic-Programm jederzeit mit folgendem Einzeiler wieder zurückholen:

POKE 2050,8: SYS 42291: POKE 46,(PEEK(35)-PEEK(781)>253: POKE 45,PEEK(781)+2AND255: CLR

Beachten muß man dabei, daß es sich um einen »echten« Einzeiler handelt: Die Anweisung darf nur im Direktmodus erfolgen und muß unbedingt innerhalb einer einzigen Eingabezeile (maximal 80 Zeichen) stehen. Aus diesem Grund sollte man die Abkürzungen der Basic-Befehle laut C-64-Handbuch benutzen (z.B. für POKE und PEEK). Außerdem darf man nach dem Reset oder einem »NEW« vor dieser Rückhol-Anweisung keine anderen Basic-Zeilen eintippen.

Die Redaktion

Mein C 128 hat 'nen Vogel!

Ich bin fast 19 Jahre alt, begeisterter Fan eines C 128D sowie eines C 16 mit 64K RAM und eines computerverrückten Vogelweibchens Marke Wellensittich (Melopsittacus undulatus), das »Anke« heißt. Seht Euch mal das Foto an (Abb.), dann erkennt Ihr, daß dieses Tier Computer genauso liebt wie ich. Das Bild ist nicht gestellt, sondern völlig realistisch (ratet mal, wer mich gerade beim Tippen dieses Briefes an Euch stört?). Das Foto dient als Warnung an alle Computerfreunde, die sich einen Wellensittich anschaffen wollen. Nicht nur, daß sie ständig auf der Tastatur herumhüpfen — sie haben auch einen fast unstillbaren Appetit auf Computerpapier! Setze ich mich an den C 128 und lasse Anke im Käfig, macht sie einen derartigen Lärm, daß man sie auch bei geschlossenem Fenster bis auf die Straße hinaus hört. Dann lasse ich das Vögelchen lieber mittippen! Wie kann ich Anke ablenken, daß ich beim Computern meine Ruhe habe?

Ralf Justinger, Hermeskeil

Wir kennen das Problem. Auch wir besitzen ein Reaktionsmaskottchen, das auf den Namen »Leo« hört und den ganzen Tag mit gespanntem Blick vor dem Bildschirm sitzt. Beruhigen läßt sich dieses possierliche Tierchen nur, wenn es ein heißes Actiongame nach dem anderen in den C 64 laden darf. Im Umgang mit dem Joystick hat es Leo allerdings schon zu einer bewundernswerten Bravour gebracht. Wir empfehlen: Lesen Sie die Kleinanzeigen in der 64'er und versuchen Sie, für Anke ebenfalls einen Computer zu bekommen. Ein VC 20 wäre genau das Richtige fürs Vögelchen. Wer weiß, vielleicht programmiert Anke sogar eines Tages das »Listing des Monats«?

Die Redaktion

Hires-Grafik und Farbe

Ich besitze den C 128D und beschäftige mich seit einiger Zeit mit Grafik. Dabei finde ich es nachteilig, daß der Bildschirmaufbau einer mit Basic 7.0 progammierten Hires-Grafik so lange dauert. Dazu gibt es die Möglichkeit, den Grafikspeicher mit

BSAVE"Bildname",ONB0,P8192 TO P16383

auf Diskette zu speichern, denn das Laden eines Grafikbildes geht ungleich schneller vor sich, als es jedesmal durch Basic-Befehle neu entstehen zu lassen. Allerdings wird durch diese Anweisung nur die Grafik, aber nicht die Farbinformation gespeichert. Wie kann ich mehrfarbige Grafiken (in Multicolor oder Hires) mit der Farbe speichern und wieder laden?

Oliver Blasin, Schnaittach

Beim C 128 ist dieses Problem ideal gelöst (im Gegensatz zum C 64). Für Hires- und Multicolor-Grafiken existiert beim C 128 ein Bereich für den Farbspeicher, der unmittelbar vor dem Grafik-RAM liegt: von $1C00 (7168) bis $1FE7 (8167). In 8 x 8-Pixel-Blöcken sind hier die Vorder- und Hintergrundfarben zur C-128-Grafik vermerkt, die man mit den Anweisungen COLOR 0 bis 3 im Basic-Programm eingeschaltet hat. Diese 1000 Byte müssen Sie beim Sichern der Grafik auf Diskette einfach mitspeichern:

BSAVE"Bildname",ONB0,P7168 TO P16383

Das Laden ist noch unkomplizierter:

BLOAD"Bildname"

Zur Sicherheit kann man an diese Anweisung noch den Zusatz »,ONB0« anhängen. Da die Startadresse des Grafikbildes auf Diskette jetzt »7168« lautet, wird es beim Laden bereits ab diesem Speicherbereich in den Computer geholt und beschreibt das Farb-RAM exakt mit den Farben, die seinerzeit beim Speichern galten. Beim C 64 befindet sich das Farb-RAM zu einer Hires-Grafik ab $2000 (8192) normalerweise im Bereich ab $0400 (1024). Man muß entweder zwei Dateien speichern (Farb-RAM von $0400 bis $07E7 und Grafik-RAM von $2000 bis $3F3F) oder das Farb-RAM unmittelbar hinter den Grafikbereich verschieben (z.B. verlegt Hi-Eddi und viele andere Grafikprogramme das Farb-RAM nach $4000 (16384).

Die Redaktion

Fehlerabfrage funktioniert

Frage von Martin Gebert in der 64'er 2/91, Seite 65: Frage ich bei meiner Floppy 1581 den Fehlerkanal ab, bleibt das Laufwerk oft mitten in der Datenübertragung per seriellem Bus hängen und ist nicht mehr ansprechbar. Nur noch Ausschalten hilft.

Nicht nur bei der Fehlerkanalabfrage, auch beim Lesen umfangreicher SEQ-Files trat bei mir ebenfalls dieser Fehler auf. Es war unmöglich, mit der 1581 vernünftig zu arbeiten. Durch Ändern der Adresse $EE08 (60936) im Kernel des C 64 von $10 auf $07 konnte ich das Problem lösen. Dadurch wird die Zeit der Verzögerungsschleife in der Betriebssystem-Routine »Unlisten senden« verkürzt. Am besten ersetzt man das Original-Kernel durch ein EPROM (beim alten C 64 über einen Adaptersockel), das die geänderte Speicherstelle enthält. Ohne Eingriff in die Hardware können Sie das Basic- und Kernel-ROM softwaremäßig ins RAM kopieren, die Änderung mit

POKE 60396,7

ausführen und anschließend über Adresse 1 des C 64 auf RAM-Betrieb umschalten (POKE 1,53).

^LSNorbert Ramek, A-Salzburg

Fragen zu Geo-Basic

Kann man mit Geo-Basic auf auf Datasette schreiben und diese wieder laden? Die üblichen Routinen des Basic 2.0 wurden nicht vollständig ins Geo-Basic-Format konvertiert. Lassen sie sich mit POKEs ansprechen?

Ingo Schmidt, Mönchengladbach

Amica Paint mit Maus

Wie kann ich Amica Paint an die M 3-Maus anpassen?

Marc Richter, Wiesbaden-Delkenheim

»Disk Wizard« mit Macke

Dieses komfortable Disketten-Tool (64'er 5/86) hat eine »Zeitbombe« versteckt, die allerdings nur unter folgenden Voraussetzungen explodieren kann:

— Wenn man im Menüpunkt »Dir-Sorter« unter »Insert« einen neuen Directory-Eintrag erzeugt,

— dabei gleichzeitig nichts löscht,

— das Directory um die maximale Länge vergrößert hat (gültig seit dem letzten Formatieren mit ID),

— und kein »Validate« durchführt.

Die Folge: Sporadischer Datenverlust auf manchen Disketten. Mein Rat: Nach jeder Manipulation des Directory muß ein »Validate« ausgeführt werden! Falls das Programm nämlich eigenständig die Directory-Kette verlängern muß (keine Vorgabe der Verkettung durch das DOS), nimmt es den niedrigsten freien Disekttensektor, belegt diesen aber nicht in der BAM! Dadurch interpretiert das DOS den von »Disk Wizard« belegten Block als freien Speicher und überschreibt diesen beim Speichern anderer Dateien gnadenlos. Die von »Disk Wizard« eingerichtete Blockverkettung des Directory ist damit hinfällig, manche Einträge kann man eventuell nur noch mit einem Diskettenmonitor wieder zurückholen.

Dipl.-Ing. Hans Peter Kastner, Castrop-Rauxel

((Bildunterschrift))

[1] Auch bei der Vogelwelt sehr beliebt: der C 128D