08.23.91 08.19.91 ================================================================================ ..zu4 Andere Grafikformate ..4t ^^FIch besitze das C-128-Zeichenprogramm Starpainter. Gibt's eine Möglichkeit, Bilder von Printfox in dieses Format zu konvertieren?^^N ..ls Thomas Gulden, Herzogenaurach ..4t ^^FLassen sich Texte von Pagefox in andere Formate, z.B. Vizawrite umwandeln? Dann könnte man auch unter Geos mit solchen Dateien arbeiten.^^N ..ls Jürgen Löwe, Lobetal ..zu4 Rückhol-Aktion ..4t ^^FAuf meiner Diskette zu Publish 64 (64'er 11/88, Seite 35) habe ich versehentlich das Directory gelöscht. Mit einem Spezialprogramm konnte ich zwar die Files wieder zurückholen, diese besitzen nun aber Nummern als Dateinamen. Damit funktioniert Publish 64 natürlich nicht. Wie lauten die richtigen Filenamen?^^N ..ls Michael Blattner, Pfronten-Kreuzegg ..4t Hier die einzelnen Dateien zu Publish 64, in der Reihenfolge, in der sie auf der Programmservice-Diskette zur 64'er 11/88 gespeichert sind. Falls nicht klar ist, um welches regenerierte File es sich dabei handelt, läßt sich das leicht an der Anzahl der Blöcke auf der Diskette erkennen (in Klammern angegeben): -- PUBLISH 64.PKD (54 Blocks), -- HARD.SER (3), -- HARD.PAR (3), -- 00.CALIFORNIA 10 (8), -- 01.CALIFORNIA 13 (9), -- 02.DWINELLE 18 (14), -- 03.ROMA 9 (7), -- CHANGE.ADDR (5), -- PUB-DEMO1.HS (17), -- PUB-DEMO1.TXT (12), -- PUB-DEMO2.TXT (4), -- PUB-DEMO3.TXT (3). Um solche Probleme künftig zu vermeiden, sollte man sämtliche Directories seiner Diskettensammlung katalogisieren und die Liste ausdrucken. Viele Leser machen sich sogar noch übersichtliche Aufkleber auf die Diskettenhülle (z.B. mit >>File Printer<< im 64'er-Sonderheft 62). Falls Ihnen wieder einmal das gleiche Mißgeschick passiert, sind Sie über die Filenamen und deren Blockumfang sofort informiert. ..zu4 Störungsfrei ..4t ^^FFrage von Markus Rudolf in der 64'er 9/91, Seite 57: Der Computer, das Laufwerk und der Drucker streuen über die Antennenleitung meines CB-Funkgeräts (Masse) das 50Hz-Netzbrummen und die Störentladungen der Stepper-Motoren von Floppy und Drucker ein. Korrekter Funk-Empfang ist nicht mehr möglich.^^N ..4t Die einfachste Lösung ist die beste: Computer und Funkgerät in getrennten Räumen betreiben! Eine andere Möglichkeit ist die Abschirmung des Anntennensteckers (Vorsicht vor einem Kurzschluß!). Als Besitzer eines C 128D-Blech und eines Amiga 2000 habe ich diese Sorgen nicht: Platinen und Laufwerke sind jeweils durch einen Blechmantel im Computergehäuse abgeschirmt. ..ls Frank-R. Fietze, Görlitz ..zu4 Amica Paint mit Präsident ..4t ^^FFrage von Louis Callebaut in der 64'er 8/91, Seite 52: Wie kann ich Grafiken von Amica Paint auf meinem Präsident 6320 ausgeben?^^N ..4t Die Antwort von Bruno Wöhl (Interface von Robotron) ist zweifellos richtig, aber nicht die billigste Lösung (das Hardware-Interface kostet immerhin 100 Mark): In den 64'er-Sonderheften 47 (Drucker-Tools) und 55 (Grafik) finden Sie eine Erweiterung zu Amica Paint ([W]HARDCOPY), die man mit einem Installationsprogramm auf die Bedürfnisse des eigenen Druckers einstellen kann. Er arbeitet dann sowohl am User-Port als auch mit einem seriellen Interface. Zum Abschluß noch eine Frage zur Final Cartridge III: Wie kann ich den 24-KByte-Speicher nutzen, der nach dem Abschalten der Pull-Down-Menüs (Bar Off) frei wird? ..ls Andreas Busse, Potsdam ..zu4 Nur kurze Programme funktionieren ..4t ^^FIch programmiere oft in Basic 2.0. Kürzere Programme (bis 18 Blöcke auf Diskette) klappen wunderbar, doch ab 19 Blöcken ist der Wurm drin: Jedesmal, wenn ich ein längeres Programm mit Final Cartridge III lade, erscheinen im gesamten Listing unsinnige Befehle. Klar, daß dann nach RUN nichts mehr funktioniert. Ohne Final Cartridge lassen sich solche Programme überhaupt nicht mehr laden. Könnte es an meiner Floppy 1541 (älteres Modell) liegen?^^N ..ls Timo Brünjes, Ganderkesee ..zu4 Die neunte Nadel ..4t ^^FFrage von Markus Huber in der 64'er 6/91, Seite 54: Im der 64'er-Magazin 3/87 entdeckte ich eine Hardware-Bastelei für eine neunte Druckernadel zum MPS 802. Ist das auch beim MPS 803 zu realisieren?^^N ..4t Der Druckkopf des MPS 803 könnte problemlos neun Nadeln aufnehmen, tatsächlich ist er aber nur mit acht bestückt. Im 9. Loch steckt weder eine Druckernadel noch der Ansteuerungsmagnet. Deshalb ließe sie sich gar nicht aktivieren! Die acht anderen Nadeln sind per Kabel mit der Druckerplatine verbunden. Jetzt kommt's: Angesteuert werden nur sieben Nadeln. Technisch ist es bestimmt möglich, beim MPS 803 auch noch die 8. Nadel zu aktivieren (obwohl mir keine Erweiterungen bekannt sind), die 9. Nadel allerdings wird immer ein Wunschtraum bleiben. ..ls Nikolaus Heusler, München ..zu4 Geos-Druckertreiber entdeckt ..4t ^^FFrage von Florian Fandrich in der 64'er 6/91, Seite 53: Wie bekomme ich beim Seikosha SP-180 VC Umlaute aufs Papier?^^N ..4t Für Geos 2.0 gibt's einen speziellen Druckertreiber >>!! SP-180 VC<<, der dem >>Geos-Pack<< beiliegt (Best. Nr. 51677). Er bringt das Bild nach dem WYSIWIG-Prinzip auf den Drucker: What you see, is what you get!. Bei Startexter 5.0 kann man den Geos-Treiber natürlich nicht verwenden. Hier muß man die DIP-Schalter an der Drucker-Rückfront anders einstellen: DIP 1 bis 3 >>off<<, DIP 4 >>on<<. Damit erhält man den CBM-DIN-Zeichensatz (s. Druckerhandbuch, Seite 65). Jetzt müssen Sie mit Starfont nur den Bildschirm-Zeichensatz von Startexter anpassen. ..ls Stephan Kollmann, Karlsruhe ..zu4 Grafik-Fragen ..4t ^^FWie kann ich Grafiken von Amica Paint in eigenen Programmen verwenden? Was muß ich tun, um mit dem PRINT-Befehl in den hochauflösenden Grafikbildschirm zu schreiben?^^N ..ls Christian Büscher, Enger ..zu4 Joystick-Stellungen ..4t ^^FWie lauten die Werte der verschiedenen Joystick-Positionen?^^N ..ls Steffen Scholz, Köln ..4t Der C 64 kennt zwei Speicherstellen, mit denen man die diversen Einstellungen des Joysticks abfragen kann: $DC00 (56320) für den Joystick Port 2 und $DC01 (56321) für den Joystick in Port 1. Je nach dem, welche Bewegungen Sie mit dem Steuerknüppel ausführen, werden einzelne Bits gesetzt oder gelöscht. Folgendes Basic-Programm gibt die Werte der bewußten Speicherstellen aus (für den Joystick in Port 1 müssen Sie die Adresse in Zeile 10 in >>56321<< ändern): ..li 10 J=PEEK(56320) 20 PRINT J 30 GOTO 10 ..4t Nach dem Start mit RUN erscheint ein durchlaufendes Zahlenband auf dem Bildschirm, das den entsprechenden Wert des Joysticks in Ruhestellung zeigt: 127 (Joystick 2) oder 255 (Joystick 1). Die Zahlen verändern sich, je nach Bewegung: ^^FJoystick Port 2:^^N oben = 126, unten = 125, links = 123, rechts = 119, links oben = 122, links unten = 121, rechts oben = 118, rechts unten = 117. Für den Joystick in Port 1 muß man zu diesen Zahlen >>128<< addieren. Für alle beiden Joystick-Ports gilt: Wird gleichzeitig der Feuerknopf gedrückt, verringern sich die Zahlen um den Wert >>16<<. ..zu4 Wie pack'ich's? ..4t ^^FWas ist ein Packer und wie benutzt man ihn? Ist das ein Computer-Befehl?^^N ..ls Oliver Neumann, Benningen ..4t Mit einem Basic-Befehl hat der Packer nichts zu tun: Es ist ein Programm (vorwiegend in Maschinensprache), das Text- und Grafikdateien, auch Basic-Programme auf hintereinanderfolgende, gleichartige Bytes untersucht. Dann merkt sich der Packer Anzahl und Stelle, wo er diese gleichartigen Bytes gefunden hat und überträgt das in eine Tabelle im Speicher. Selbstverständlich übernimmt er auch Bytes in der richtigen Reihenfolge, die nur einmal vorkommen, sonst wäre z.B. ein Basic-Programm nach dem Entpacken nicht mehr lauffähig (oder Grafikdateien würden fürchterlich aussehen). Wurde die gesamte Datei vom Packer durchforstet, schreibt er vor die im Speicher erzeugte Tabelle ein Entpackungsprogramm. Diese neue Datei läßt sich jetzt auf Diskette speichern: Meist ist sie erheblich kürzer als das ungepackte Programm. Wird das gepackte File erneut geladen und gestartet (entweder mit RUN oder per SYS-Befehl), startet der Entpackungsvorgang: Die Daten nisten sich wieder in der korrekten Anzahl und Reihenfolge im Speicher ein. Der Vorteil eines Packers ist, daß er Ladezeiten verkürzt und Platz auf der Diskette spart. ..zu4 Am Puls der Zeit... ..4t ^^FFrage von Martin Treinies in der 64'er 9/91, Seite 57: Wie betreibt der C 64 seine interne Echtzeituhr?^^N ..4t Die reservierte Variable TI enthält die Systemzeit, ausgedrückt in 1/60-Sekunden. Erfaßt und verwaltet werden diese Werte in den Adressen $A0 (160) bis $A2 (162). Mit dieser Formel kann man sie umrechnen: ..li TI = PEEK(162)+256*PEEK(161)+ 65536*PEEK(160) ..4t Adresse 162 speichert die 1/60-Sekunden, Speicherstelle 161 erhöht alle 4,27 s ihren Wert um >>1<<. Bei Speicherzelle 160 dauert's 1092,27 s. Wenn Sie in alle drei Speicherstellen eine >>0<< POKEn (oder jeden anderen beliebigen Wert, der nicht höher als >>255<< sein darf), können Sie die interne C-64-Uhr setzen. Die Adressen 160 bis 162 werden von der Betriebssystem-Routine UDTIM ab $F698 (63131) beeinflußt: Bei jedem System-Interrupt erhöhen sich deren Inhalte um >>1<<. Bei Disketten-, Drucker, vor allem aber Datasetten-Operationen tritt der System-Interrupt unregelmäßig auf: Dann stimmt die Uhrzeit in TI nicht mehr exakt. Für die Stringvariable TI$ existieren keine separaten Speicherstellen: Der Computer liest die Zeit ebenfalls aus den Adressen 160 bis 162 und rechnet das Ergebnis anschließend in TI$ um: Stunden, Minuten, Sekunden. Um damit die Uhr zu setzen, weist man der Variablen den gewünschten Wert zu (z.B. >>201530<<). Die SETSTR-Routine ab $A9DA (43482) im Basic-Interpreter, ein Unterprogramm des LET-Befehls, verarbeitet die Stringvariable weiter: Ab Speicherstelle $A9E7 (43495) wird sie wieder ins TI-Format gewandelt (1/60-Sekunden) und in den Adressen 160 bis 162 gespeichert. Die numerische Variable TI kann man nicht wie TI$ setzen (z.B. TI = 201530), damit entsteht nur ein >>Syntax Error<<. Schuld daran ist die System-Routine zum Anlegen neuer Variablen ab $B12C (45356): Sie identifiziert TI als Systemvariable und weist den Versuch zurück, sie für scheinbar eigene Zwecke zu verwenden. TI kann man nur über entsprechende POKEs in den Adressen 160 bis 162 ändern. Bei der Abfrage der Uhrzeit geht's umgekehrt: Ab $AF3B (44859) prüft der C 64, ob sich die Abfrage auf TI$ bezieht (z.B. PRINT TI$). Falls ja, holt er sich ab $AF48 (44872) die Zeit und wandelt sie ins sechsstellige TI$-Format um. Ähnlich funktioniert's ab $AF6E (44910) beim Lesen einer Realvariablen (z.B. PRINT TI): Dann werden erneut die Speicherstellen 160 bis 162 bemüht. Eine wichtige Rolle zum Lesen und Setzen der System-Uhr spielen die Kernel-Routinen SETTIME $FFDB (65499): die Inhalte von Akkumulator, x- und y-Register werden in die Uhr geschrieben. READTIME $FFDE (65502) holt sich die Werte der Zellen 160 bis 162c und bringt diese in Akku, x- und y-Register. Durch Ändern dieser System-Routinen kann man z.B. die ungenauen Angaben von TI und TI$ durch die Echtzeituhr im CIA ersetzen (s. 64'er 7/91, Seite 75). Interessant ist in diesem Zusammenhang, daß der Computer TI auch als Verzögerungsvorrichtung benutzt: Bei Kassetten-Operationen erscheint für kurze Zeit die Meldung >>Found<< am Bildschirm. Hier wartet der Computer in der System-Routine $E4E0 (58592) ca. 8,5 s auf das Drücken der Taste . Verantwortlich dafür ist Adresse 161, deren Wert zweimal gelesen wird (2 x 4,27 s = ca. 8,5 s). ..ls Nikolaus Heusler, München ..zu4 Action-Replay-Modul ..4t ^^FFrage von Thomas Cornelißen in der 64'er 8/91, Seite 50: Kann ich mit diesem Hardware-Modul auch Hires-Grafiken speichern?^^N ..4t Speichern einer Hires-Grafik auf üblichem Weg sieht dieses Hardware-Modul nicht vor. Aber es gibt einen Trick: Wenn die Grafik erscheint, kann man sie als >>SS<<-Datei speichern, anschließend läßt sie sich mit einem Grafik-Klau-Programm wie z.B. >>Hardmaker<< (64'er-Sonderheft 53) bearbeiten. Es gibt noch einen anderen Weg (für Profis): Wer sich mit Maschinensprache auskennt, muß die Lage der Grafik-Daten im Speicher ermitteln und die Bitmap per Freezer einfrieren. Anschließend kann man sie mit den entsprechenden Befehlen des integrierten Maschinensprache-Monitors speichern. Das ist bedeutend komfortabler, da Sie dadurch das Programm nicht zerstören, worin die Hires-Grafik erzeugt wird. ..ls Jürgen Löwe, Lobetal ..zu4 Datasette intern ..4t ^^FIch besitze die Datasette 1530. Darin befinden sich zwei ICs des Typs GL 324 und GD 74LS14 mit je 14 Pins. Wer kann mir sagen, an welchen Pin ich die Justierhilfe für den VC 1530 (Punkt E) anschließen muß?^^N ..ls Karl-Heinz von Seggern, Bremen ..zu4 C 64 und Fischertechnik ..4t ^^FSeit Weihnachten letzten Jahres besitze ich den >>Computing Experimental<<-Kasten von Fischertechnik. Leider gibt's ein Problem: Sobald ich eine Messung mit dem Fotowiderstand oder dem Heißleiter durchführen möchte, erhalte ich nach der Eingabe folgender Zeile immer den Wert >>0<<:^^N ..li IN: FOR I=1 TO 100: EX: PRINT EX: NEXT I ..4t ^^FDabei habe ich mich strikt an die Anleitung gehalten: Anschluß des Meßinstruments an EX und EY, Überbrückung des anderen Ports per Kabel. Ich habe sowohl die Meßinstrumente als auch das Interface bei Fischertechnik überprüfen lassen. Das Ergebnis: Alles tadellos! Nun war ich der Meinung, der Userport meines C-64-II sei defekt, doch nach Auskunft von Commodore Osnabrück ist auch dieser voll funktionstüchtig! Woran kann's also liegen?^^N ..li Jochen Anderweit, Nordhorn ..zu Cartridge abschalten ..4t ^^FFrage von Stephan Müller in der 64'er 8/91, Seite 50: Wie läßt sich das Final Cartridge III softwaremäßig erkennen und abschalten?^^N ..4t Folgendes Listing macht's möglich: ..li 0 SY=PEEK(44)*256+PEEK(43)+28 :GOTO1::::::::: 1 DATA120,32,83,228,32,21, 253,88,96: FOR I=SY TO SY+8: READP: POKEI,P: NEXT I 10 IF PEEK(775)*256 + PEEK(774) <>42778 THEN SYS SY ..4t Bitte beachten Sie: Die Zeilen 0 und 1 müssen immer am Anfang eines Programms stehen. Ebenso wichtig sind die exakt neun Doppelpunkte, denn Sie dienen als Platzhalter fürs Maschinenprogramm. Die Abfrage des Moduls und das Abschalten geschieht in Zeile 10. Dies kann selbstverständlich jede andere Zeilennummer an beliebiger Stelle Ihres Basic-Programms sein. ..ls Peter Osterkamp, Hamburg ..4t Wenn das Modul eingesteckt ist, schreibt es Informationen in die Speicherbereiche $DE00 bis $DEFF (56832 bis 57087) und $DF00 bis $DFFF (57088 bis 57343). Nehmen wir als Beispiel die Adresse 57088: Bei eingestecktem Modul steht darin der Wert $20 (32). Wenn man das Modul entfernt, wird diese Speicherstelle auf >>0<< gesetzt. Das Abschalten per Software funktioniert bei mir so: ..li 10 IF PEEK(57088) = 0 THEN100 20 KILL 100 REM PROGRAMMFORTSETZUNG ..4t Allerdings arbeitet diese Routine nur einmal fehlerfrei, bei einer zweiten Abfrage gibt's den Fehler >>Syntax Error in 20<<. Grund: Da das Modul inzwischen abgeschaltet wurde, erkennt es den Befehl KILL nicht mehr: Basic 2.0 interpretiert ihn nun als GOSUB ohne Zeilennummer. ..ls Frank Markefka, Bochum ..zu4 DIP-Schalter für Grafikdruck ..4t ^^FFrage von Jörg Teichmann in der 64'er 8/91, Seite 51: Ich besitze den Drucker Star LC-24-10 Multi-Font mit dem Wiesemann-Interface 92 007. Welche DIP-Schalter muß ich für den Ausdruck einer Hires-Grafik umstellen?^^N ..4t Ich besitze die gleiche Hardware-Konfiguration. Die DIP-Schalterstellung des Interface: 1, 3, 7, 8 = >>on<<, 2, 4, 5, 6 = >>off<<. Folgende DIPs des Druckers müssen auf >>on<< stehen: 1-1, 1-3, 1-4, 1-5, 1-6, 1-7, 1-8, 2-2, 2-4, 2-6, die restlichen bei >>off<<. Um die LQ-Schriftarten in Geos 2.0 beim Star LC 24-10 zu nutzen, braucht man den Druckertreiber >>!! LC 24-10 (GC)<<. ..ls Roland Bramm, Kronberg ..zu4 Nicht geeignet ..4t ^^FFrage von Gottfried Lechner in der 64'er 8/91, Seite 52: Welche Veränderungen wurden am C 128D-Blech vorgenommen, die den korrekten Betrieb des Lightpens C 64 von Conrad-Elektronik verhindern?^^N ..4t Schuld daran ist das bedeutend größere RAM des VDC (64 KByte). Bei meinem Freund mit >>Trabbi-Diesel<< (C 128D-Plastik) funktionierte der Lightpen einwandfrei, bis er diesen per VDC-Chip 6568 auf 64 KByte VDC-RAM aufrüstete. ..ls Roland Bramm, Kronberg ..zu4 War's diese Macke? ..4t ^^FFrage von Niels Busink in der 64'er 9/91, Seite 57: Nach längerem Computerbetrieb verschwimmt das Monitorbild meines C 64.^^N ..4t Die von Ihnen geschilderten Symptome lassen eindeutig auf mangelnde Stromversorgung schließen. Ein Test mit einem Netzteil, das 100%ig in Ordnung ist (z.B. das eines Freundes) könnte Klarheit schaffen. Alles deutet darauf hin, daß hier ein Wärmefehler im Spiel ist. Leider kann man das Netzteil des C 64-II nicht reparieren: Hier hilft nur Neukauf oder Selbstbau (64'er 1/91, Seite 92). Ich hatte die gleichen Probleme mit meinem C 128: Mit dem neuen Netzteil funktioniert nun alles einwandfrei. ..ls Frank Schuster, Ribnitz-Damgarten ..zu4 Wörterbuch zu Superscript 128 ..4t ^^FFrage von H.-J. Gaudlitz in der 64'er 8/91, Seite 51: Wie komme ich an die Wörterbuch-Diskette, die das Programm im Untermenü >>Spell<< verlangt?^^N ..4t Mit folgendem Programm in Basic 7.0 können Sie eine vorerst noch leere Wörterbuch-Diskette generieren: ..li 100 PRINT "BITTE LEERE DISKETTE EINLEGEN!" 110 PRINT "UND BELIEBIGE TASTE DRÜCKEN" 120 GETKEYA$ 130 OPEN 1,8,15, "N: WOERTERBUCH,WB" 140 CLOSE 1 150 A$="DICTIONARY":C$=",S,W" 200 READB$ 210 IFB$="END" THEN END 220 D$=A$+B$+C$ 230 OPEN 2,8,2,D$ 240 PRINT#2,CHR$(13)CHR$(0) CHR$(2)CHR$(13); 250 CLOSE 2 260 GOTO 200 999 DATA A,B,C,D,E,F,G,H,I,J, K,L,M,N,O,P,U,END ..4t Achtung: Dieses Programm funktioniert nicht bei Raubkopien von >>Superscript 128<<, es zerstört die System-Diskette! ..ls Norbert Wirtl, Nürnberg ..zu4 Superscript und Star LC-10 ..4t ^^FFrage von Eduard Bauer in der 64'er 7/91, Seite 61: Bis heute habe ich es nicht geschafft, eine brauchbare Druckeranpassung zu diesem C-128-Textverarbeitungsprogramm zusammenzustellen.^^N ..4t Im Hauptmenü nach dem Booten müssen Sie den Punkt >>Arbeitsdiskette erstellen<< aufrufen (mit ). Jetzt werden Sie aufgefordert, den Druckertyp einzugeben. Er heißt: >>cbm dot matrix<<. Folgen Sie den weiteren Anweisungen auf dem Bildschirm. Wenn die Arbeitsdiskette erfolgreich installiert ist, gibt's bestimmt keine Druckerprobleme mehr. Die DIP-Schalter 4, 7 und 9 sollten auf >>off<< stehen. ..ls Thomas Klar, Wilthen ..zu4 Ältere Geos-Version ..4t ^^FKann ich die diversen Geos-Erweiterungs-Softwarepakete wie Megapack 1 und 2, Geopublish ud Geobasic auch mit Geos 1.2 nutzen?^^N ..ls Daniel Betz, Sinsheim ..4t Daran werden Sie keine ungetrübte Freude haben: Sämtliche genannten Software-Erweiterungen laufen nur mit Geos 64, Version 2.0. ..zu4 Herausforderung an Programmierer ..4t ^^FIch besitze den C 64 und die Floppy 1541-II. Nach >>Load "$",8<< und anschließendem LIST gibt der Bildschirm das Directory aus. Damit kann die Programme aber jeder laden. Durch Manipulationen der BAM (Blockbelegungsplan auf der Diskette) habe ich schon Programme versteckt, also unsichtbar gemacht. Auf die Dauer ist das aber zu zeitraubend und unsicher. Denn mit einem Diskettenmonitor und einiger Fachkenntnis ist es ein Kinderspiel, die versteckten Programme wieder sichtbar zu machen. Mir schwebt folgendes Programmprojekt vor: Bereits während des Formatierens müßte sich ein Paßwort bzw. Geheimcode und ein entsprechendes Assemblerprogramm auf der Diskette einnisten. Anschließende SAVE-Operationen müssen problemlos vor sich gehen -- beim Laden (LOAD) soll aber der Zugriff nicht möglich sein. Stattdessen müßte die Abfrage nach dem Paßwort kommen. Erst nach richtiger Eingabe darf das Directory erscheinen und das Laden einzelner Programme möglich sein. Außerdem soll das Paßwort nur verschlüsselt auf der Diskette stehen, sonst kann man es ja ebenfalls mit einem Diskettenmonitor entdecken. Welcher Programmierer ist in der Lage, dieses knifflige Problem zu lösen?^^N ..ls Dirk Nauke, Köthen ..4t Wir sind gespannt, ob sich der eine oder andere Floppy-Spezialist unter den Assembler-Freaks an dieses Projekt heranwagt. Ein Listing, das exakt die geforderten Voraussetzungen erfüllt, hat die besten Chancen, mit dem >>Trick des Monats<< im 64'er-Magazin ausgezeichnet zu werden. ..zu4 Der verschwundene Berg ..4t ^^FIch habe ein Basic-Programm geschrieben,in dem ein Berg erscheint. Kommen nun die Namen der Spieler auf den Bildschirm, scrollt der Berg nach oben, die Namen erscheinen darunter. Woran liegt's und wie kann ich das verhindern?^^N ..ls Timo Jeßen, Handewitt ..4t Dieses >>Phänomen<< ist nur durch die aktuelle Cursorposition bedingt. Wenn der Berg mit PRINT-Befehlen auf dem Bildschirm ausgegeben wird, befindet sich der Cursor in der Zeile darunter in Spalte 0. Überschreitet die Zeilenposition bei der anschließenden Namensausgabe die Zahl >>24<<, scrollt der Bildschirm nach oben und schneidet Stück für Stück des Berges ab. Das ist bei einer Textausgabe nicht anders, wenn der Text länger als 24 Bildschirmzeilen ist. Möchten Sie Berg und Spielernamen auf demselben Bildschirm erscheinen lassen, müssen Sie die Cursorpositionen anpassen. Dazu gibt's eine Betriebssystem-Routine: SYS 58640. Als Parameter muß man vor dem SYS-Aufruf die gewünschte Spaltenposition in Adresse 211 und die der Zeile in Speicherstelle 214 übergeben. Ein Beispiel: Der Spielername soll in der Mitte der rechten Bildschirmhälfte erscheinen: Spalte = 20, Zeile = 12. Die Basic-Anweisung lautet: ..li POKE 211,20: POKE 214,12: SYS 58640: PRINT "Spieler 1" ..4t Diese Befehle ersetzen eine PRINT AT- oder CHAR-Anweisung, die andere Basic-Dialekte kennen (z.B. Basic 7.0 des C 128). In Basic 2.0 muß man sich mit den genannten POKEs und dem SYS-Befehl begnügen. ..zu4 Umlaufbahn ..4t ^^FWelche Formel veranlaßt ein Sprite, sich in einer Kreisbahn zu bewegen?^^N ..ls Timo Jeßen, Handewitt ..4t Dazu kennt der Computer in Basic mehrere Rechenfunktionen: SIN, COS und SQR (s. Handbuch des C 64). Am effektvollsten geht's mit der SQR-Funktion. Folgendes Listing schickt einen Himmelskörper auf dem Bildschirm in eine Umlaufbahn, die erst endet, wenn man die STOP-Taste drückt: ..li 10 REM SPRITE EINLESEN 12 FOR I=704 TO 767 13 READD: POKE I,D: NEXT 15 POKE 2040,11 16 POKE 53248,25: REM X 17 POKE 53249,100: REM Y 18 POKE 53287,15: REM GRAU 19 POKE 53269,1: REM EIN 20 FOR X=50 TO 110 30 Y1=100+SQR(110*X-X*X) 31 Y2=100-SQR(110*X-X*X) 32 FOR Y=Y1 TO Y2STEPY1-Y2 33 GOSUB 90: NEXTY,X 34 FOR X=110 TO 50 STEP-1 35 Y1=100-SQR(110*X-X*X) 36 Y2=100+SQR(110*X-X*X) 37 FOR Y=Y1 TO Y2STEPY1-Y2 38 GOSUB 90: NEXTY,X 40 GOTO 16 90 POKE 53248,INT(X) 91 POKE 53249,INT(Y) 92 RETURN 100 DATA 00,00,00,00,00,00 110 DATA 00,00,00,00,00,00 120 DATA 00,00,00,00,00,00 130 DATA 00,254,00,1,223,00 140 DATA 3,191,128,7,95,192 150 DATA 14,190,224,14,127 160 DATA 96,13,127,96,12,191 170 DATA 96,14,158,224,7,79 180 DATA 192,3,191,128,1,255 190 DATA 00,00,254,00,00,00 200 DATA 00,00,00,00,00 ..4t Wenn Ihnen die Sprite-Daten nicht gefallen, kann man diese ab Zeile 100 durch andere ersetzen (z.B. fliegende Untertassen, Raketen usw). Man darf auch die Werte für die horizontale (X) oder vertikale (Y) Spriteposition jederzeit durch andere ersetzen, muß dabei aber beachten: In Zeile 90 werden die Sprite-Positionen in die entsprechenden Speicherstellen für Sprite 1 (53248 und 53249) gePOKEt. Ergeben sich höhere Werte als >>255<<, bringt das Programm in dieser Form einen >>Illegal Quantity Error<<. In dem Fall muß man eine Abfrage einbauen, die bei Übersteigen des Werts >>255<< die Speicherstelle 53248 auf >>0<< zurücksetzt und die Zahl >>1<< in Adresse 53264 schreibt.