von Markus Rösner Na, die lange Wartezeit überstanden ? Ja ? Na dann können wir ja gleich voll einsteigen: Im normalen Basic sah es ja mit den Grafikbefehlen nicht gerade sonnig aus. Zwar mehr als diverse andere 8bit- Computer haben, aber für den Künstler doch zu wenig: Wie zeichne ich schnell einen Kreis ? Wie kann ich die Fläche Speicherplatzsparend füllen, indem ich die XIO-Routine umgehe ? Die Antworten zu diesen Fragen sehen im normalen Basic gleich aus: Geht nicht, aber wo- für gibt es das Turbo-Basic ? Kreis: CIRCLE x,y,z x und y sind die Koordinaten des Mittelpunktes, z gibt den Radius an. Ellipse: CIRCLE x,y,z,w x und y sind wieder die Ko- ordinaten des Mittelpunktes, z=x-Radius, w=y-Radius. Füllen: FCOLOR x = Füllfarbe festlegen FILLTO x,y = Füllen ab Position x,y. Aber was macht man, wenn man in Gr. 8 einen Text in die Grafik ein- fügen will ? Textfenster ? Der Text muß aber an diese bestimmte Stelle im Bild. Turbo-Basic schafft Abhilfe: TEXT x,y,"Na das isses !!!" schreibt ab Position x,y den Text. Oder welcher Musikfreak würde nicht sein Leben für einen 16bit-Soundgenera- tor im 8bit geben ? Dann hat man pro Soundkanal die Auswahl von 65535 Tönen, als bisher aus 255. Aber Achtung ! Beim benutzen des 16bit-Sounds stehen nur noch zwei Soundkanäle zur Verfügung und diverse Töne kann der Mensch nicht mehr hören, diverse Tiere aber schon !!! Wie das geht ? Einfacher als gedacht: DSOUND Kanal,Freq.,Verzerrung,Lautst. Es bleibt alles beim alten (wie beim normalen Sound-Befehl), nur daß man eben aus 65535 Tönen wählen kann, das ergibt ein Klangspektrum, wow !!! Mit FOR X=0 to 3:SOUND X,0,0,0:NEXT X stellte man bisher alle Soundkanäle ab, einfacher geht's in Turbo-Basic: hier genügt ein einfaches SOUND. Bsp: 10 SOUND 0,143,10,12 20 DSOUND 1,2846,10,12 30 SOUND In Zeile 30 werden alle Soundkanäle ausgeschaltet, einfach und gut, was will man mehr ? Mit CLOSE (auch ohne weitere Angaben) lassen sich alle I/O-Kanäle auf ein- mal schließen, wie beim SOUND-Befehl. IF/THEN ist ja ganz schön, aber drei Bildschirmzeilen reichen oft nicht aus und zudem ist es sehr unübersichtlich. Jeder, der schonmal in Pascal oder auch QUICK programmierte, dem wird die strukturierte Programmierweise aufge- fallen sein, die ein Listing wesentlich übersichtlicher macht. Strukturierung bringt nur Vorteile ! Natürlich kann man in Turbo-Basic auch das gewohnte IF/THEN aus dem normalen Basic übernehmen, aber '%'@&#$#. Hier nun ein Turbo-Basic Beispiel: 10 GET K 20 IF K=asc("1") 30 ? "K=1" 40 ELSE 50 ? "K<>1" 60 ENDIF Achherje !!! Nun, hier die Programmerklärung: 10: Es wird auf einen Tastendruck ge- wartet. 20: Wenn die Zahl "1" getippt wurde, dann soll auf dem Schirm die Mit- teilung "K=1" erscheinen. 30: Gibt die Mitteilung aus. 40: Wenn nicht die Zahl "1" getippt wurde, dann soll die Mitteilung "K<>1" auf dem Schirm erscheinen. 50: Gibt die Mitteilung aus. 60: Dem Computer wird mitgeteilt, daß hier die IF-Schleife beendet werden soll. So, natürlich dürfen die Programmteile zwischen IF/ELSE und ELSE/ENDIF oder IF/ENDIF mehrere Zeilen umfassen. ELSE darf fehlen, ENDIF NIE !!! Hierzu noch ein kleines Beispiel: falsch: richtig: 10 GET K 10 GET K 20 IF K=ASC("1") 20 IF K=ASC("1") 30 ? "K=1" 30 ? "K=1" 40 ENDIF Na, wieder was dazugelernt ? Damit der Kurs nicht wieder unendlich lang wird, breche ich ihn an dieser Stelle ab, nächstes mal geht's dann weiter mit den anderen neuen Schleifen- routinen. Byebye.