Source file: /~heha/hsn/kcemu/[Download]kcemu_050.exe/KCBASIC.HLP

?_wÿÿÿÿT2g^lð=|6HC-BASIC HilfeHC-BASIC-Hilfe ® h#s (12/98)þ  è( @€€€€€€€€€€ÀÀÀ€€€ÿÿÿÿÿÿÿÿÿÿÿÿwwwwwwwwwwwwwwwwpwpwpwpwpwwww»3wppwwww»³wppwwwww»»wpwwwwwwpwwwwwwwppwwwwwpwwppwwwwwpwwww»0wpwpw»0wwwwwwwwww»0wwwwwwwwwwwww»³wwwpwpû»0pwpÿ»0wwwû³www»»0wpwp»³wpwû»www3ÿ»0www»0»°wwpw»³»°wwpwû»08»°wwwwÿ»»3;»°wwwwû»»»»wwwpwû»¿ðwwwpwÿ¿wwwwwwwwwwwwwwwwpwpwwwwpwpwwwwwwwwwwwwwwwwBrowseButtons()/&;)z4FÄ^&‰‹Fô&‰ÿÿ
g
ÿÿÿÿ|CONTEXTu(|CTXOMAP6|FONTû|KWBTREE|KWDATAA|KWMAP|SYSTEM|TOPIC¦|TTLBTREEF |bm0¤0|bm11|bm2|1|bm3è1ÐÜ@ÿ�ÜÿðÜÿñˆÜD@ÜD�ÜÿøðÜqÜD@ÜÿÜD@ÜÜD@ÜÜD@ÜDOÜÿðÜÿôÿÜ
ˆ@ÿ�Ü
ÿñÿÜ DÜˆ�ðÜÜDÜÜD@Ü
ÿðÜD@Ü
ÿðDAÜÜ܈��DÜÜ!DÜÿðÜ3DÜÜDÜDOÜÿôÿ܈��Ü0D@ÜÜ`DÜÜÿÜU\ÜÌÈÜÜÿÜÜÿÜU\ÌÅUÜÌ\ÜÌÜÜÿÜÜÿðUÅ\ÜÌ\ÜÌÜÌÈ€ÜÜÿÜÜÿðU\Ì\U\ÜÌÜÌÀÜÜÿÜÜÿðÜUÅUÌÅ\ÜÌÌÈ€ÜÜÿÜÜÿÜU\Ü
ÌÈÜÜÿÜÜÿðÜCÜÿÜÜÿðÜCˆÜÿÜÜÿðøÜAˆ�ÜÿÜÜÿÜðÜ?ÿÜÜÿÜÜÿ€ÌÜ?"ÌÀÜÿÜÿøÜÌUÜ?"UÜÌ�ÿÜÿŒÌU’Ü@"UÌÈÿÜøÌUÜ"Ü"Ü"ÀUÌ�ÜøÅÀÜÌÜ"Ü"Ü"ÜÌ\�ÜŒÜÌURÜ"Ü"!Ü"!Ü"!ÜÜ"Ü"ÜÜ"!Ü"ÜÜ"!ÜŠ,™,¦,³,Á,Ð,ß,(Á
ç#-=-;[--põ.
/#/5/K/!#!1!A!R!ÿÿt!‚!""�#·#ë#ÿÿ%ÿÿ¶!ïPî,þ,—-è–-Ù/îÿÿn±(ÿÿÿÿ�.š.ã­`)r)‰)À]\ÿÿÿÿŒó(ñ / É�«èÿÿb+³.„ÿÿ»ÔF �ý—a ¡ † D	ÿÿÓé	 xøåëÉ.ß.+ÝDGe/
rË	Š¥ÐÕ¾s…™*>Ul~ULÿÿÿÿFÿÿÿÿR1gÿÿÿÿÿÿÿÿRsInhalt HC-BASIC-Hilfe?‘' €0€V˜˜f䀂ÿInhalt HC-BASIC-Hilfe5RÆ' €€6°˜¤¤€‚ÿEinführung:§g‘m@ P€Î€0¤¤ãí¯]Y€‰‚ã�¿›œ‰‚ãíN‰‚ãÉ…œÿ‰‚ÿWas ist HC-BASIC? Aufruf von HC-BASICErste Schritte Vergleich mit anderen BASIC-Dialekten:Ƨ' €&€6°˜¤¤€‚ÿBefehlsreferenz:÷“mžd –€'€0¤¤ãšð£L€‰‚ã¶É×\‰‚ã11Õ‰‚ã©Ø!Ô‰‚ãPn¦�‰‚ã%©ßʼn‚ã4Ÿ&B‰‚ãwÎè뉂ã0jL‰‚ÿAlphabetische Übersicht aller HC-BASIC-BefehleEditierkommandos (EDIT, CLOAD, BYE...)Ein- und Ausgabe (INPUT, PRINT, COLOR...)Programm-Steueranweisungen (GOTO, FOR...)Mathematische und logische Funktionen (ABS, AND...)Zeichenketten-Manipulation (LEFT$...)Grafikfunktionen (PSET, LINE...)Maschinennahe Anweisungen (CALL, PEEK...)Arbeit mit Peripherie (LIST#1, JOYST, SOUND...)A§ß' €4€6°˜¤¤€‚ÿTafeln und Übersichten:šZžy@ P€´€0¤¤ãì±&€‰‚ã–†&‰‚ãOÜþº‰‚ãg¿‰‚ÿHC-BASIC: Typen und SpeicherRangfolge von OperatorenFarbcodesFehlermeldungen5ß®' €€6°˜¤¤€‚ÿSiehe auch:Åcysb ”€Ê€0¤¤ã3[ÕÕ€†"€€‰‚ã3[ÕÕ€†"€‰€ë¦$=KCEMU.HLP‰‚‚‚ÿ Glossar: Verwendete Abkürzungen Hilfe KC-Emulator Hilfe KCBASIC.HLP © h#s (12/98)B®µ1+XÿÿÿÿµžWas ist HC-BASIC?>só* $€(€V˜˜f䀂ÿWas ist HC-BASIC?øµ& €ñ€0¤¤€‚ÿBASIC heißt Beginners All-purpose Symbolic Instruction Code, was soviel heißt wie Allzweck-Programmiersprache für Anfänger. Für nahezu jeden Computer, ja sogar für viele programmierbare Taschenrechner ist BASIC als Programmiersprache verfügbar. Das bedeutet, daß in Basic geschriebene Programme mit geringfügigen Änderungen fast überall laufen. Basic ist keineswegs eine Programmiersprache nur für Anfänger; durch die universelle Verwendbarkeit kann man in Basic auch komplizierte Programme schreiben.¥vó¶
/ ,€í€0¤¤€‚€€‚‚‚ÿHC-BASIC ist der BASIC-Dialekt der DDR-Kleincomputerszene. Es ist auf allen diesen Computern vorhanden und überbrückt dabei ihre Unterschiede.HC-BASIC ist ca. 10 Kilobytes groß und ist als RAM- und als ROM-Variante verfügbar. Die RAM-Variante mußte von Kassette eingelesen werden und hinterließ bei den meisten Computern 5 Kilobytes (ca. 100 Programmzeilen) für Programme und Daten. Das Laden von Kassette dauerte je nach Computertyp ca. 80 Sekunden.Die neueren Computer hatten dann standardmäßig ein ROM-BASIC, welches dem nervtötenden BASIC-Laden ein Ende bereitete und für mindestens 15 Kilobytes freien Speicher sorgt.輞, &€y€0¤¤€â€�‰‚ÿDas Kassetten-Format der BASIC-Programme und Daten ist dabei zwischen allen Computern gleich und damit austauschbar. Das erforderte beim Z1013 komplett neue Lese- und Schreibroutinen.D¶
â1ç…ÿÿÿÿâ‘HAufruf vonHC-BASIC?@ž"* $€,€V˜˜f䀂ÿAufruf von HC-BASICEâg3 4€%€0¤¤€‚€€€€‚ÿHC-BASIC wird vom Betriebssystem aus mit einem Betriebssystem-Kommando aufgerufen. Bei Computern ohne ROM-BASIC muß ggf. (vorher) das Laden von Kassette erfolgen.Generell gibt es zwei Aufrufmöglichkeiten. Der sog. Kaltstart initialisiert die BASIC-Arbeitszellen und löscht damit ein möglicherweise bereits vorhandenes BASIC-Programm, der Warmstart initialisiert nur einige Arbeitszellen, wodurch Programm und Daten erhalten bleiben. Beim Erstaufruf oder bei korruptem Speicherinhalt funktioniert nur der Kaltstart korrekt.vJ"Ý, (€”€0¤¤€‚€€‚ÿBeim Kaltstart meldet sich HC-BASIC und fragt nach dem Speicherende:Gg$+ &€8€0ÈG‚O€��‚ÿHC-BASICMEMORY END ? :_œvÝÀ& €ì€0¤¤€‚‚ÿSie können hier eine Zahl eingeben. In den allermeisten Fällen drücken Sie hier nur die ENTER-Taste. Es erscheint:†Q$R@5 :€¢€0ÈG‚O€���€	€���‚ÿHC-BASICÀR@žMEMORY END ? :47854 BYTES FREE (Die Zahl kann differieren)OK>_k?À½@, (€~€0¤¤€‚€€‚ÿBeim Warmstart meldet sich einfach nur OK und ein Prompt:2R@ï@* $€€0ÈG‚O€�‚ÿOK>_O"½@>A- *€D€6°˜¤¤€âL!‰‚ÿKalt- und Warmstart bei KC85 K&ï@‰A% €L€0¤¤€‚ÿIm CAOS-Menü erscheint beim Booten:�U>A&BH `€ª€0ÈG‚€€
€€
€�€	€�€	€��€	‚ÿ* HC-CAOS x.x *%BASIC (=Kaltstart)%REBASIC (=Warmstart)%SWITCH%(usw.)̤‰AòB( €I€0¤¤€‚‚‚ÿDabei ist BASIC für den Kaltstart und REBASIC für den Warmstart anzuwählen.Beim KC85/2 muß BASIC erst von Kassette geladen werden; es ist wie folgt vorzugehen:½z&B¯DC T€õ€0ÈG‚O€����������€€���������‚ÿ* HC-CAOS 2.2 *>SWITCH>JUMP>MENU>SAVE>VERIFY>LOAD>COLOR>MODIFY>>LOADBASIC   COM 0200 2A0002> 03> 04> 05> 06> 07> 08> 09> 0A> 0B>0C> 0D> 0E> 0F> 10> 11> 12> 13> 14> 15>16> 17> 18> 19> 1A> 1B> 1C> 1D> 1E> 1F>20> 21> 22> 23> 24> 25> 26> 27> 28> 29>30> 31> 32> 33> 34> 35> 36> 37> 38> 39>3A> 3B> 3C> 3D> 3E> 3F> 40> 41> 42> 43>44> 45> 46> 47> 48> 49> 50> FF>nIòBE% €’€0¤¤€‚ÿDanach erfolgte ein Autostart von HC-BASIC mit Kaltstart (siehe oben).O"¯DlE- *€D€6°˜¤¤€âL!‰‚ÿKalt- und Warmstart bei KC87 gBEÓE% €„€0¤¤€‚ÿDas Betriebssystem der KC87 hat kein Menü. Hier ist einzugeben:›QlEnFJ d€¢€0ÈG‚O€���€€€	��€���€€€	€�‚ÿrobotron Z9001OS>BASIC (=Kaltstart)oderOS>WBASIC (=Warmstart)¡|ÓEG% €ø€0¤¤€‚ÿIst noch kein BASIC geladen, fordert der Computer nach Eingabe des Kommandos zum Einlesen des Programms von Kassette auf.P#nF_G- *€F€6°˜¤¤€â€�‰‚ÿKalt- und Warmstart bei Z1013 E G¤G% €@€0¤¤€‚ÿ(keine Information verfügbar)4
_GØG' €€6°˜¤¤€‚ÿSiehe auch¹<¤G‘H} Ê€~€0¤¤€†"€ëzßšKCCAOS.HLP‰‚†"€ëzßšKC87.HLP‰‚†"€ëzßšKCZ1013.HLP‰‚ÿ KC85-Tastatur  KC87-Tastatur  Z1013-Tastatur ?ØGÐH1ÎX"ƒÿÿÿÿÐHwÅErste Schritte;‘HI* $€"€V˜˜f䀂ÿErste Schritte½—ÐHÈI& €/€0¤¤€‚ÿDas folgende Tutorial führt den Kommando- und Programmlauf-Modus von BASIC ein. Dabei werden Zahlenformate und die wichtigsten Kommandos aufgeführt.;IJ' €(€6°˜¤¤€‚ÿDer KommandomodusâÈIK, &€Å€0¤¤€ã�¿›œ‰‚ÿNachdem BASIC gestartet wurde, befindet sich HC-BASIC im sogenannten Direkt- oder Kommandomodus. Man kann ihn schon als wissenschaftlichen Taschenrechner verwenden. Dazu gebe man ein (Tastatureingaben sind unterstrichen):NJ_K3 6€6€0ÈG‚O€�€€���‚ÿOK>PRINT 1+1 2OK>_¸�KL( €!€0¤¤€‚‚‚ÿDer Computer antwortet mit "2", durchaus korrekt.Zur Zeilenkorrektur können die üblichen Tasten verwendet werden, mit zwei Einschränkungen:9_KPM7 <€€r˜‘€¦:‚�€ƒ†"€‚ƒ‚ÿ1.Die Taste CLR (Emulator: Rückschritt) ist nicht benutzbar, hierzu CURSOR  und DEL (Entf) verwenden,2.die Kleincomputer haben keine automatische Zeicheneinfügung; zum Einfügen von Zeichen muß die INS-Taste gedrückt werden, welche Leerzeichen einfügt.AL‘M' €4€6°˜¤¤€‚ÿMathematische AusdrückeßPM¢N2 2€¿€0¤¤€ã–†&‰ãPn¦�‰‚ÿDer Computer kann auch kompliziertere Rechnungen und beachtet, daß Punkt- vor Strichrechnung gilt und Klammern die Rechen-Reihenfolge ändern. Außerdem bietet HC-BASIC eine Reihe von mathematischen Standardfunktionen:…I‘M'O< H€’€0ÈG‚O€�€€���€€���‚ÿOK>PRINT 2*21 42OK>? 777/4.5*SIN(PI/4) + 5*12E3 60122.1OK>_	¸¢N<�Q p€q€0¤¤€‚€€€€€€€€€€€€€€‚ÿDas lange PRINT kann mit ? abgekürzt werden. Zu beachten ist, daß das Multiplikationszeichen computer-üblich ein Sternchen ist u'O<�‘Hnd nicht weggelassen werden darf. Die Division erfolgt mit Schrägstrich, nicht mit Doppelpunkt. Dezimalbrüche sind mit Punkt statt Komma einzugeben. Auch versteht HC-BASIC die Exponentenschreibweise mit E als Exponentenpräfix. So bedeutet 12E3 = 12·10³ = 12000. E bedeutet also "mal zehn hoch".Ÿy'OÛ�& €ò€0¤¤€‚‚ÿIm Gegensatz zu anderen Programmiersprachen darf eine Zahl mit einem Punkt beginnen, und sie wird auch so ausgegeben:b&<�=‚< H€L€0ÈG‚O€�€€���€€���‚ÿOK>?2*.5 1OK>?1/2 .5OK>_GÛ�„ƒ4 6€'€0¤¤€‚€€€€‚‚ÿHC-BASIC wird meist kompakt geschrieben, Leerzeichen sind Luxus. So kann auch das Leerzeichen nach PRINT oder ? entfallen, so wie auch in jedem Ausdruck.Für absolute Novizen erwähnenswert ist, daß als Null immer die Zahl 0 und niemals der Buchstabe O einzugeben ist.>=‚ƒ' €.€6°˜¤¤€‚ÿNumerische VariablenºŽ„ƒ|…, &€€0¤¤€ãç͉‚ÿVerglichen mit einem Taschenrechner hat HC-BASIC auch einen Zahlenspeicher; allerdings in vieltausendfacher Ausführung. Damit man diese Speicherplätze nicht durchnumerieren muß, kann man sich für jeden Speicher einen Namen ausdenken, dessen erste zwei Zeichen eindeutig sein müssen. Die Zuweisung zum Speicher erfolgt mit dem Zeichen =. Zur Verschönerung kann man auch noch LET davorschreiben.^%ƒڅ9 B€J€0ÈG‚O€€€��€€��‚ÿ>LET X=12OK>WURST=8.30OK>_"ú|…ü†( €õ€0¤¤€‚‚‚ÿDie Zahlen wurden offenbar "verschluckt". Das OK zeigt den ordnungsgemäßen Schluckvorgang an.Diese Speicherplätze, Variablen genannt, können auf der rechten Seite der Zuweisung wieder Verwendung finden, nicht nur für LET, sondern auch für PRINT:XÚ…T‡: D€<€0ÈG‚O€€€��€€���‚ÿ>X=X+1OK>?X 13OK>_Aü†•‡' €4€6°˜¤¤€‚ÿZeichenketten-Variablen¸’T‡M‰& €%€0¤¤€‚ÿHC-BASIC kennt weiterhin Zeichenkettenvariablen. In diese dürfen keine Zahlen, sondern nur Zeichenketten (Strings) hineingesteckt werden. Zeichenkettenkonstanten werden mit Doppelhochkomma eingeschlossen. Der Operator "+" verkettet Zeichenketten (das zwar logisch, aber für C-Programmierer nicht trivial). Zeichenkettenvariablen haben an ihrem Namen ein Dollarzeichen "$" zur Kennzeichnung des Typs.‰G•‡Ö‰B T€Ž€0ÈG‚O€€€��€€��€€���‚ÿ>A$="Hallo"OK>B$="Welt"OK>?A$+" "+B$+"!"Hallo Welt!OK>_àM‰ÝŠ' €Á€0¤¤€‚‚ÿMehrere Zuweisungen und auch die PRINT-Anweisung können auf eine Zeile geschrieben werden. Die Anweisungen (auch wenn das LET fehlt, ist die =-Zuweisung eine richtige BASIC-Anweisung) werden mit Doppelpunkt ":" getrennt:
¾Ö‰ç‹L f€}€0ÈG‚O€€€��€€���€€��€€���‚ÿ>BOCKWURST=0.95:STUECK=2OK>?ST;" Bockwürste kosten";BO*ST;" M" 2 Bockwürste kosten 1.90 MOK>STUECK=1OK>?ST;" Bockwürste kosten";BO*ST;" M" 1 Bockwürste kosten 0.95 MOK>_qCÝŠX�. *€‡€0¤¤€‚‚ãeO¯‰‚ÿ(Wer's gerne in Euro möchte, na bitte!)Schön sieht die zweite Ausgabe nicht aus, aber es stimmt so. Weitaus besser lesbar wäre "Eine Bockwurst kostet 95 Pfennige", oder? Das erfordert viel Zeichenketten-Manipulation, soll die Ausgabe dennoch universell sein. Siehe Beschreibung zu PRINT zur Bedeutung des Semikolons.9ç‹‘�' €$€6°˜¤¤€‚ÿProgrammeingabeΨX�_Ž& €Q€0¤¤€‚ÿIm Beispiel oben (Bockwürste) mußte die Zeile zur Ausgabe zweimal hingeschrieben werden. Ein Programm für die kopfrechenschwache Verkäuferin könnte etwa so aussehen:"î‘���4 6€Ý€0ÈG‚O€����������‚ÿ>10 REM Kasse>20 INPUT"bei Start in Kasse [M]:";K>30 INPUT"Wieviel Bockwürste?";A>40 P=.95*A>50 ?"Das kostet";P;" M.">60 INPUT"Kunde gibt [M]:";G>70 ?"Geld zurück:";G-P;" M">80 K=K+P>90 ?"In Kasse jetzt:";K;" M">100 GOTO 30>_ø¿_Ž…À9 @€€0¤¤€‚€€€€㪲"‰‚ÿHC-BASIC verschluckt ganze Zeilen, wenn man ihnen eine Nummer, die s��…À‘Hog. Zeilennummer, voranstellt. Das wird nicht mit OK quittiert. Man bekommt diese Zeilen mit LIST auf den Schirm.@��ÅÀ' €2€6°˜¤¤€‚ÿDer Programmlauf-ModusðÄ…ÀµÁ, &€‰€0¤¤€ãçû‰‚ÿMit RUN wird dieses Programm gestartet. HC-BASIC ist nun nicht mehr im Kommando- sondern im Programmlauf-Modus. Zum Kommandomodus zurück kommt man jederzeit mit der Taste BRK (Emulator: Esc).>ÅÀóÁ' €.€6°˜¤¤€‚ÿProgramm-VeränderungŒfµÁÃ& €Í€0¤¤€‚ÿNeben der Unterstützung der Kopfrechenschwäche führt das Programm Buch über den Kassenstand. Was aber, wenn der Kunde nicht zahlen kann (oder will)? Wir könnten erzwingen, daß der Kunde stets passend oder mehr zahlen muß. Die Programm-Ergänzung erfolgt, indem Zeilen dazwischen geschrieben werden. Deshalb sollte stets in Zehnerschritten numeriert werden.Y/óÁØÃ* $€^€0ÈG‚O€�‚ÿ>65 IF G<P THEN ?"Reicht nicht!": GOTO 30>_\0Ã4Ä, (€`€0¤¤€‚ã¦$=‰‚ÿWeiteres siehe BASIC-Anweisungen im Index.4
ØÃhÄ' €€6°˜¤¤€‚ÿSiehe auch¹<4Ä!Å} Ê€~€0¤¤€†"€ëzßšKCCAOS.HLP‰‚†"€ëzßšKC87.HLP‰‚†"€ëzßšKCZ1013.HLP‰‚ÿ KC85-Tastatur  KC87-Tastatur  Z1013-Tastatur VhÄwÅ: D€:€pi�¦Á~‚i€†"€ãjãIቂÿ Inhalt HC-BASIC-HilfeV%!ÅÍÅ1«
…ÿÿÿÿÍÅ.Vergleich mit anderen BASIC-DialektenR(wÅÆ* $€P€V˜˜f䀂ÿVergleich mit anderen BASIC-Dialekten‘lÍÅ°Æ% €Ø€0¤¤€‚ÿJeder Vergleich hinkt, deshalb erscheint hier eine Betrachtung in zwei verschiedenen Zeiträumen sinnvoll.8ÆèÆ' €"€6°˜¤¤€‚ÿDamalige Zeit:>°Æ&Ê( €-€0¤¤€‚‚‚ÿHC-BASIC ist in seiner Leistungsfähigkeit durchschnittlich, sowohl bezüglich Befehlsvorrat, Bedienerfreundlichkeit und auch Abarbeitungsgeschwindigkeit.Gegenüber dem BASIC des C64 z.B. hat man den Vorteil, für Grafikfunktion keine POKE- und PEEK-Orgien schreiben zu müssen; es gibt dafür richtige BASIC-Befehle. Dafür fehlt HC-BASIC das praktische PRINT USING xxx.Gerade für Funktionsdarstellungen interessant war auf dem ZX-Spectrum die Möglichkeit, eine Stringvariable zur Funktionsdefinition bei DEF FN heranzuziehen. HC-BASIC ermöglicht das nicht, sodaß mehr oder weniger trickreich eingebaute EDIT-Anweisungen dem HC-BASIC auf die Sprünge helfen mußten. Gerade diese Anwendung legt den Einsatz eines Interpreters nahe; bei einem Compiler steht man hier vor einem riesigen Problem.7èÆ]Ê' € €6°˜¤¤€‚ÿHeutige Zeit:·&ÊÍ8 >€ÿ€0¤¤€ã=¤€‰€€€‚ÿBASIC ist immer noch BASIC! Nahezu sämtliche Schlüsselwörter sind auch in GW-Basic (wer kennt das nicht?), WordBasic (mit dem man die Makroviren programmiert:-) und Visual Basic (Windows im Schneckentempo:-) vorhanden. Obwohl BASIC-Compiler schon seit langem existieren, ist BASIC heute noch eine Domäne von Interpretern. Prinzipiell lassen sich KC-Programme mit nur geringen Änderungen auf solche neueren BASIC-Dialekte übertragen (portieren). Die Programmierung von Kontrollstrukturen (z.B. FOR-Schleifen) ist weitestgehend gleich geblieben. Jedoch fehlen HC-BASIC z.B. WHILE-Schleifen. Und damit sind wir bei den Unterschieden.Ö]Ê.8 >€­€0¤¤€€€€€€€‚ÿDie Zeit ist auch an BASIC nicht spurlos vorbeigezogen. Wesentlichen Einfluß dabei hatten andere Programmiersprachen, insbesondere die moderneren Compiler-Sprachen Pascal und C. (Von Fortran will ich hier lieber nicht sprechen:-) Eingeführt wurde die strukturierte Programmierung und "richtige" Texteditoren mit integriertem Hilfesystem. Damit gelingt der Wegfall von Zeilennummern, die bei HC-BASIC als Editierhilfe und Sprungziele dienen. So hat sich Basic zu einer modernen Programmiersprache gemausert, mit denselben Schlüsselwörtern wie damals (von neuen Schlüsselwörtern abgesehen), und ohne die Widrigkeiten von damals. Zudem haben sich die Programmiersprachen Basic, Pascal, C Í.wÅund Fortran einander angenähert.[*͉1˜"ƒ¦‡ÿÿÿÿ‰‘JAlphabetische Übersicht; BASIC-Anweisungen^1.ç- *€b€V˜˜fäP€€‚ÿAlphabetische Übersicht der BASIC-Anweisungen„‰• ø€	€pi�¦Á~‚iã6ù€‰ƒ‚ã–†&‰ƒ‚ã–†&‰ƒ‚ã–†&‰ƒ‚ã–†&‰ƒ‚ã–†&‰ƒ‚ƒ‚ãeO¯‰ƒ‚ãeO¯‰ƒ‚ãç͉ƒ‚ã–†&‰ƒ‚ãeO¯‰ƒ‚ãò}‰ƒ‚ã–†&‰ƒ‚ÿ!Kommentarkennzeichnung+Addition oder Zeichenkettenverbindung-Subtraktion*Multiplikation/Division^Potenzierung: (Doppelpunkt)Anweisungs-Trennzeichen, (Komma)Formatierung für PRINT; (Semikolon)Formatierung für PRINT=Wertzuweisung=,<,>,<=,=>,<>Vergleichsoperatoren?Kurzzeichen für PRINTABS()absoluter BetragANDLogische UND-Verknüpfung>©ç>• ø€S€pi�¦Á~‚iã½€€‰ƒ‚ã+±‰ƒ‚ãeO¯‰ƒ‚ã󀉃‚ãªq‰ƒ‚ã\Û͉ƒâL!‰‚ã84¤‰ƒâL!‰‚ãúˆ‰ƒ‚ã‚Œ‰ƒ‚ãe�‰ƒ‚ã´7¾«‰ƒâL!‰‚ÿASC()ASCII-Code eines Zeichens ermittelnAUTOSelbständige ZeilennumerierungAT()Formatierung für PRINTATN()ArcustangensBEEPErzeugung eines SignaltonesBLOADMaschinenprogramm einlesen (nur KC85)BORDEREinstellen der Bildschirmrandfarbe (nur KC87)BYERückkehr zum BetriebssystemCALLAufruf MaschinenprogrammCHR$()Zeichen aus ASCII-Code bildenCIRCLEZeichnen eines Kreises (nur KC85)™X� Ѐ3€pi�¦Á~‚iãá½€‰ƒ‚ã
‰ƒ‚ã0W¬‰ƒ‚ã	‰ƒ‚㎉ƒ‚ブ‰ƒâL!‰‚ãþñ‰ƒ‚ã“Ž‰ƒ‚ã|"
‰ƒ‚ãÕʳ­‰ƒ‚ÿCLEARLöschen des Variablenspeichers; Begrenzung des String- und BASIC-SpeichersCLOADEinlesen eines BASIC-ProgrammsCLOAD*Einlesen eines VariablenfeldesCLOSE#Schließen einer KanaloperationCLSBildschirm löschenCOLOREinstellen der Vorder- und Hintergrundfarbe (nur KC85)CONTFortsetzen nach BREAKCOS()KosinusCSAVEBASIC-Programm abspeichernCSAVE*Variablenfeld abspeichern)–>�	“ ô€-€pi�¦Á~‚iã'#È­€‰ƒ‚ãbĉƒ‚ãËÞ‰ƒ‚ã™r-‰ƒ‚ã�©³‰ƒ‚ãÄ”‰ƒ‚ã(‰ƒ‚ãÚ‰ƒ‚ãI‰ƒ‚ãËœ‰ƒ‚ã…ž‰ƒ‚ã=¤‰ƒ‚㱤‰ƒ‚ÿCSRLIN()liefert Zeilennummer des CursorsDATADatenliste definierenDEEK()Integer-SpeicherlesenDEF FNDefinition einer FunktionDELETEProgrammzeilen löschenDIMVariablenfeld dimensionierenDOKEInteger-SpeicherschreibenEDITProgrammkorrekturELSEAlternative zu IF-THENENDProgrammendeEXP()ExponentialfunktionFORStart ProgrammschleifeFRE()Ermittelt freien Speicher/žX°‘ ð€=€pi�¦Á~‚iãÈtÖ€‰ƒ‚ãG͉ƒ‚ãI‰ƒ‚㶹‰ƒ‚ã6W=‰ƒ‚㻹‰ƒ‚ãþ}=‰ƒ‚ã«)Tቃ‚ã|“=‰ƒ‚㿹‰ƒ‚ãís‰ƒ‚ã³Æ‰ƒâL!‰‚ÿGOSUBUnterprogrammaufrufGOTOProgramm-SprungIFStart bedingter AnweisungsblockINKEinstellen der VordergrundfarbeINKEY$TastaturabfrageINP()Byte-PortlesenINPUTEingabeanforderungINPUT#Eingabeanforderung vom PeripheriegerätINSTR()Ermittelt der Position eines Substrings im StringINT()Ganzzahliger TeilJOYST()SpielhebelabfrageKEYBelegen einer Funktionstasten (nur KC85)š�	É
 Ì€5€pi�¦Á~‚iãmr¡}€‰ƒâL!‰‚ã—“"‰ƒ‚ãá͉ƒ‚ãç͉ƒ‚ãı"‰ƒâL!‰‚ãÜÓ‰ƒ‚㪲"‰ƒ‚ã�Ô‰ƒ‚ãÒ‰ƒ‚ÿKEYLISTAuflistung der Funktionstastenbelegung (nur KC85)LEFT$()Liefert die ersten Zeichen aus ZeichenketteLEN()Liefert ZeichenkettenlängeLETWertzuweisungLINEZeichnen einer Linie (nur KC85)LINESFestlegen der Anzahl der bei LIST auszugebenden ZeilenLISTAuflisten des ProgrammquelltextesLIST#Ausgeben des Programmquelltextes auf PeripheriegerätLN()Natürlicher Logarithmus(·°@q °€o€pi�¦Á~‚iãêÚ"€‰ƒ‚ã¶�Áû‰ƒâL!‰‚ã¼Õ‰ƒ‚ã\܉ƒ‚ã=¤‰ƒ‚ã–†&‰ƒ‚ãGu%‰ƒ‚ãS‰ƒ‚ÿLOAD#Einlesen eines mit LIST# ausgegebenen ProgrammquelltextesLOCATEPlazieren des Cursors im aktuellen Fenster (nur KC85)MID$()Liefert Zeichenketten-TeilstückNEWLöschen des Programm- und VariablenspeichersNEXTAbschluß einer FOR-ProgrammschleifeNOTLogische NegationNULLFestlegung der Anzahl der auszugebenden Dummyzeichen am Ende einer ZeileONFallweise Mehrfachverzweigung zu verschiedenen ProgrammteilenÉ
@.'˜É
3B� ì€1€pi�¦Á~‚iã’†&€‰ƒ‚ã–†&‰ƒ‚ãB扃‚ã¬àš‰ƒ‚㛉ƒ‚ã¯m'‰ƒ‚ãy‰ƒ€‚ãå¶'€‰ƒ‚ãx쉃‚ãg�m‰ƒâL!‰‚ãeO¯‰ƒ‚ÿOPEN#Eröffnen einer KanaloperationORLogische ODER-VerknüpfungOUTByte-PortausgabePAPEREinstellen der HintergrundfarbePAUSEPause in der ProgrammabarbeitungPEEK()Byte-SpeicherlesenPIMathematische Konstante (Kreiszahl) piPOKEByte-SpeicherschreibenPOS()Position in Ausgabezeile ermittelnPRESETLöschen eines Bildpunktes (nur KC85)PRINTZeichenausgabe auf Bildschirm‡@?D… Ø€€pi�¦Á~‚iãøUr€‰ƒ‚ãÖÒ'‰ƒâL!‰‚ã~ ±‰ƒâL!‰‚ãi9"`‰ƒâL!‰‚ã"Ú)‰ƒ‚ã6ù‰ƒ‚ã(%¿‰ƒ‚ãÚ¼ìɉƒ‚ã
`.‰ƒ‚ÿPRINT#Zeichenausgabe auf PeripheriegerätPSETSetzen eines Bildpunktes (nur KC85)PTEST()Testet, ob Pixel gesetzt (nur KC85)RANDOMIZEZufallsgenerator initialisieren (nur KC85)READLesen von Werten aus DATA-AnweisungenREMKommentarkennzeichnungRENUMBERNeunumerierung von ProgrammzeilenRESTOREDATA-Zeiger setzen/rücksetzenRETURNRückkehr aus Unterprogramm&•3BeF‘ ð€+€pi�¦Á~‚iã(ª€‰ƒ‚ã°ú‰ƒ‚ãçû‰ƒ‚ãƉƒ‚㉃‚ã[‚H‰ƒâL!‰‚ãeO¯‰ƒ‚ã=¤‰ƒ‚ãr+‰ƒ‚ãù‰ƒ‚ã­ô.:‰ƒ‚ã0×À:‰ƒ‚ÿRIGHT$()Liefert die letzten Zeichen einer ZeichenketteRND()liefert ZufallszahlRUNProgrammstartSGN()VorzeichenSIN()SinusSOUNDTonausgabe (nur KC85)SPC()Formatierung für PRINTSTEPSchrittweite der Laufvariable einer FOR-AnweisungSTOPProgramm-UnterbrechungSTR$()Zahl in Zeichenkette konvertierenSTRING$()Dupliziert ZeichenkettenausdrückeSWITCHModule schalten¡?D�H{ Ä€C€pi�¦Á~‚iãx€‰ƒ‚ãeO¯‰ƒ‚ãý‰ƒ‚ãI‰ƒ‚ã=¤‰ƒ‚㑧,‰ƒ‚㑧,‰ƒ‚ã@‰ƒ‚ãm‰ƒ‚ãœÃ.‰ƒ‚ÿSQR()QuadratwurzelTAB()Formatierung für PRINTTAN()TangensTHENEnde der Bedingung bei IF und Beginn der bedingten Anweisung(en)TOEndwert der Laufvariable einer FOR-SchleifeTROFFAusschalten des TRACE-KontrollmodusTRONEinschalten des TRACE-KontrollmodusUSR()Aufruf Maschinenprogramm mit RückgabewertVAL()Zeichenkette in Zahl konvertierenVGET$Liefert den Inhalt der Cursorposition…&eFJ_ Œ€M€pi�¦Á~‚iãõÃ倉ƒâL!‰‚ã+
扃âL!‰‚ã…Ï/‰ƒ‚ãêk‰ƒ‚ãÐÏøZ‰ƒ‚ÿVPEEK()Byte-Speicherlesen aus IRM-Adresse (nur KC85)VPOKEByte-Speicherschreiben auf IRM-Adresse (nur KC85)WAITAnhalten des Programms bis zur Erfüllung einer Bedingung an einem EingabeportWIDTHFestlegen der Länge einer AusgabezeileWINDOWFestlegen eines Ausgabe-Fensters5�H;J' €€6°˜¤¤€‚ÿSiehe auch:VJ‘J: D€:€pi�¦Á~‚i€†"€ãjãIቂÿ Inhalt HC-BASIC-HilfeA;JÒJ1!0ŠÿÿÿÿÒJ²NEditierkommandos=‘JK* $€&€V˜˜fäP€‚ÿEditierkommandos*§ÒJ9Mƒ Ô€O€pi�¦Á~‚iã+±€‰ƒ‚ãúˆ‰ƒ‚ã
‰ƒ‚ãþñ‰ƒ‚ã|"
‰ƒ‚ã�©³‰ƒ‚ãÚ‰ƒ‚ã³Æ‰ƒ‚ãmr¡}‰ƒ‚ãÜÓ‰ƒ‚㪲"‰ƒ‚ÿAUTOSelbständige ZeilennumerierungBYERückkehr zum BetriebssystemCLOADEinlesen eines BASIC-ProgrammsCONTFortsetzen nach BREAKCSAVEBASIC-Programm abspeichernDELETEProgrammzeilen löschenEDITProgrammkorrekturKEYBelegen einer FunktionstastenKEYLISTAuflistung der FunktionstastenbelegungLINESFestlegen der Anzahl der bei LIST auszugebenden ZeilenLISTAuflisten des Programmquelltextes¸vKñMB T€ì€pi�¦Á~‚iã\Ü€‰ƒ‚ã(%¿‰ƒ‚ãçû‰ƒ‚ÿNEWLöschen des Programm- und VariablenspeichersRENUMBERNeunumerierung von ProgrammzeilenRUNProgrammstart59M&N' €€6°˜¤¤€‚ÿSiehe auch:ŒKñM²NA R€˜€pi�¦Á~‚iãšð£L€‰‚†"€ãjãIቂÿAlphabetische Übersicht der HC-BASIC-Befehle Inhalt HC-BASIC-HilfeA&NóN1¦‡MÿÿÿÿóNÆ„Ein- und Ausgabe=²N0O* $€&€V˜˜fäP€‚ÿEin- und Ausgabe’óNW�‰ à€%€pi�¦Á~‚iãeO¯€‰ƒ‚ãeO¯‰ƒ‚ãeO¯‰ƒ‚ãeO¯‰ƒ‚ã84¤‰ƒâL!‰‚㎉ƒ‚ブ‰ƒ‚ã'#È­‰ƒ‚ãbĉƒ‚㶹‰ƒ‚ã6W=‰ƒ‚ÿ, (Komma)Formatierung für PRINT; (Semikolon)Formatierung für PR0OW�²NINT?Kurzzeichen für PRINTAT()Formatierung für PRINTBORDEREinstellen der Bildschirmrandfarbe (nur KC87)CLSBildschirm löschenCOLOREinstellen der Vorder- und HintergrundfarbeCSRLIN()liefert Zeilennummer des CursorsDATADatenliste definierenINKEinstellen der VordergrundfarbeINKEY$Tastaturabfrage˜0Opƒ� Ѐ1€pi�¦Á~‚iãþ}=€‰ƒ‚ã¶�Áû‰ƒâL!‰‚ã¬àš‰ƒ‚ãx쉃‚ãeO¯‰ƒ‚ã"Ú)‰ƒ‚ãÚ¼ìɉƒ‚ãeO¯‰ƒ‚ãeO¯‰ƒ‚ãœÃ.‰ƒ‚ÿINPUTEingabeanforderungLOCATEPlazieren des Cursors im aktuellen Fenster (nur KC85)PAPEREinstellen der HintergrundfarbePOS()Position in Ausgabezeile ermittelnPRINTZeichenausgabe auf BildschirmREADLesen von Werten aus DATA-AnweisungenRESTOREDATA-Zeiger setzen/rücksetzenSPC()Formatierung für PRINTTAB()Formatierung für PRINTVGET$Liefert den Inhalt der Cursorposition•[W�„: D€¶€pi�¦Á~‚iãêk€‰ƒ‚ãÐÏøZ‰ƒ‚ÿWIDTHFestlegen der Länge einer AusgabezeileWINDOWFestlegen eines Ausgabe-Fensters5pƒ:„' €€6°˜¤¤€‚ÿSiehe auch:ŒK„Æ„A R€˜€pi�¦Á~‚iãšð£L€‰‚†"€ãjãIቂÿAlphabetische Übersicht der HC-BASIC-Befehle Inhalt HC-BASIC-HilfeK:„…1:0Šqÿÿÿÿ…‹Programm-SteueranweisungenGÆ„X…* $€:€V˜˜fäP€‚ÿProgramm-Steueranweisungen–…s‡… Ø€-€pi�¦Á~‚iã6ù€‰ƒ‚ƒ‚ãç͉ƒ‚ãὉƒ‚ã™r-‰ƒ‚ãÄ”‰ƒ‚ãI‰ƒ‚ãËœ‰ƒ‚ã=¤‰ƒ‚ãÈtÖ‰ƒ‚ãG͉ƒ‚ãI‰ƒ‚ÿ!Kommentarkennzeichnung: (Doppelpunkt)Anweisungs-Trennzeichen=WertzuweisungCLEARLöschen des Variablenspeichers; Begrenzung des String- und BASIC-SpeichersDEF FNDefinition einer FunktionDIMVariablenfeld dimensionierenELSEAlternative zu IF-THENENDProgrammendeFORStart ProgrammschleifeGOSUBUnterprogrammaufrufGOTOProgramm-SprungIFStart bedingter Anweisungsblock9¾X…¬‰{ Ä€}€pi�¦Á~‚iãçÍ€‰ƒ‚ã=¤‰ƒ‚ãS‰ƒ‚㛉ƒ‚ã6ù‰ƒ‚ã
`.‰ƒ‚ã=¤‰ƒ‚ãr+‰ƒ‚ãI‰ƒ‚ã=¤‰ƒ‚ÿLETWertzuweisungNEXTAbschluß einer FOR-ProgrammschleifeONFallweise Mehrfachverzweigung zu verschiedenen ProgrammteilenPAUSEPause in der ProgrammabarbeitungREMKommentarkennzeichnungRETURNRückkehr aus UnterprogrammSTEPSchrittweite der Laufvariable einer FOR-AnweisungSTOPProgramm-UnterbrechungTHENEnde der Bedingung bei IF und Beginn der bedingten Anweisung(en)TOEndwert der Laufvariable einer FOR-Schleife“Ys‡?Š: D€²€pi�¦Á~‚i㑧,€‰ƒ‚㑧,‰ƒ‚ÿTROFFAusschalten des TRACE-KontrollmodusTRONEinschalten des TRACE-Kontrollmodus5¬‰tŠ' €€6°˜¤¤€‚ÿSiehe auch:ŒK?Š‹A R€˜€pi�¦Á~‚iãšð£L€‰‚†"€ãjãIቂÿAlphabetische Übersicht der HC-BASIC-Befehle Inhalt HC-BASIC-HilfeItŠI‹1ˆM		ÿÿÿÿI‹ˆ�Mathematische FunktionenE‹Ž‹* $€6€V˜˜fäP€‚ÿMathematische Funktionen:ŒI‹È�® *�€pi�¦Á~‚iã–†&€‰ƒ‚ã–†&‰ƒ‚ã–†&‰ƒ‚ã–†&‰ƒ‚ã–†&‰ƒ‚ã–†&‰ƒ‚ãò}‰ƒ‚ã–†&‰ƒ‚ã󀉃‚ã“Ž‰ƒ‚ã…ž‰ƒ‚㿹‰ƒ‚ãÒ‰ƒ‚ã–†&‰ƒ‚ã–†&‰ƒ‚ãy‰ƒ€‚ÿ+Addition-Subtraktion*Multiplikation/Division^Potenzierung=,<,>,<=,=>,<>VergleichsoperatorenABS()absoluter BetragANDLogische UND-VerknüpfungATN()ArcustangensCOS()KosinusEXP()ExponentialfunktionINT()Ganzzahliger TeilLN()Natürlicher LogarithmusNOTLogische NegationORLogische ODER-VerknüpfungPIMathematische Konstante (Kreiszahl) piÿžŽ‹ÇŽa �€=€pi�¦Á~‚iãi9"`€‰ƒâL!‰‚ã°ú‰ƒ‚ãƉƒ‚㉃‚ãx‰ƒ‚ãý‰ƒ‚ÿRANDOMIZEZufallsgenerator initialisieren (nur KC85)RND()liefert ZufallszahlSGN()VorzeichenSIN()SinusSQR()QuadratwurzelTAN()Tangens5È�üŽ' €€6°˜¤¤€‚ÿSiehe auch:ŒKÇŽˆ�A R€˜€pi�¦Á~‚iãšð£L€‰‚†"€ãjãIቂÿAlphabetische Übersicht der HC-BASIC-Befehle Inhalt HC-BASIC-HilfeKüŽÓ�1ðqH‚
ÿÿÿÿÓ�‚ÃZeichenketten-ManipulationGˆ�&À* $€:€V˜˜fäP€‚ÿZeÓ�&Àˆ�ichenketten-Manipulation=ÂÓ�cÂ{ Ä€…€pi�¦Á~‚iã–†&€‰ƒ‚ã½€‰ƒ‚ãe�‰ƒ‚ã|“=‰ƒ‚ã—“"‰ƒ‚ãá͉ƒ‚ã¼Õ‰ƒ‚ã(ª‰ƒ‚ãù‰ƒ‚ã­ô.:‰ƒ‚ÿ+ZeichenkettenverbindungASC()ASCII-Code eines Zeichens ermittelnCHR$()Zeichen aus ASCII-Code bildenINSTR()Ermittelt der Position eines Substrings im ZeichenketteLEFT$()Liefert die ersten Zeichen aus StringLEN()Liefert ZeichenkettenlängeMID$()Liefert Zeichenketten-TeilstückRIGHT$()Liefert die letzten Zeichen einer ZeichenketteSTR$()Zahl in Zeichenkette konvertierenSTRING$()Dupliziert Zeichenkettenausdrücke^,&ÀÁÂ2 4€X€pi�¦Á~‚iãm€‰ƒ‚ÿVAL()Zeichenkette in Zahl konvertieren5cÂöÂ' €€6°˜¤¤€‚ÿSiehe auch:ŒKÁ‚ÃA R€˜€pi�¦Á~‚iãšð£L€‰‚†"€ãjãIቂÿAlphabetische Übersicht der HC-BASIC-Befehle Inhalt HC-BASIC-HilfeBöÂÄÃ1…	šƒÿÿÿÿÄÃÆGrafik-FunktionenQ!‚ÃÄ0 0€B€V˜˜fäP€âL!‰‚ÿGrafik-Funktionen (nur KC85)ÊÄÃ2ÅS t€•€pi�¦Á~‚iã´7¾«€‰ƒ‚ãı"‰ƒ‚ãg�m‰ƒ‚ãÖÒ'‰ƒ‚ã~ ±‰ƒ‚ÿCIRCLEZeichnen eines Kreises (nur im ROM-BASIC)LINEZeichnen einer Linie (nur im ROM-BASIC)PRESETLöschen eines BildpunktesPSETSetzen eines BildpunktesPTEST()Testet, ob Pixel gesetzt5ÄgÅ' €€6°˜¤¤€‚ÿSiehe auch: X2ÅÆH `€²€pi�¦Á~‚iãšð£L€‰‚ãOÜþº‰‚†"€ãjãIቂÿAlphabetische Übersicht der HC-BASIC-BefehleFarbcodes  Inhalt HC-BASIC-HilfeJgÅQÆ1pH‚Q†ÿÿÿÿQÆwÊMaschinennahe AnweisungenFÆ—Æ* $€8€V˜˜fäP€‚ÿMaschinennahe AnweisungenK®QÆâÈ� �]€pi�¦Á~‚iã\ÛÍ€‰ƒâL!‰‚ã‚Œ‰ƒ‚ãËÞ‰ƒ‚ã(‰ƒ‚㱤‰ƒ‚㻹‰ƒ‚ãB扃‚ã¯m'‰ƒ‚ãå¶'‰ƒ‚ã0×À:‰ƒâL!‰‚ã@‰ƒ‚ãõÃ剃âL!‰‚ÿBLOADMaschinenprogramm einlesen (nur KC85)CALLAufruf MaschinenprogrammDEEK()Integer-SpeicherlesenDOKEInteger-SpeicherschreibenFRE()Ermittelt freien SpeicherINP()Byte-PortlesenOUTByte-PortausgabePEEK()Byte-SpeicherlesenPOKEByte-SpeicherschreibenSWITCHModule schalten (nur KC85)USR()Aufruf Maschinenprogramm mit RückgabewertVPEEK()Byte-Speicherlesen aus IRM-Adresse (nur KC85)Ô“—ƶÉA P€'€pi�¦Á~‚iã+
怉ƒâL!‰‚ã…Ï/‰ƒ‚ÿVPOKEByte-Speicherschreiben auf IRM-Adresse (nur KC85)WAITAnhalten des Programms bis zur Erfüllung einer Bedingung an einem Eingabeport5âÈëÉ' €€6°˜¤¤€‚ÿSiehe auch:ŒK¶ÉwÊA R€˜€pi�¦Á~‚iãšð£L€‰‚†"€ãjãIቂÿAlphabetische Übersicht der HC-BASIC-Befehle Inhalt HC-BASIC-HilfeFëɽÊ1šƒ«‚
ÿÿÿÿ½Ê�ÎArbeit mit PeripherieBwÊÿÊ* $€0€V˜˜fäP€‚ÿArbeit mit Peripherie&³½Ê%Ís ´€g€pi�¦Á~‚iãªq€‰ƒ‚ã0W¬‰ƒ‚ã	‰ƒ‚ãÕʳ­‰ƒ‚ã«)Tቃ‚ãís‰ƒ‚ã�Ô‰ƒ‚ãêÚ"‰ƒ‚ãGu%‰ƒ‚ÿBEEPErzeugung eines SignaltonesCLOAD*Einlesen eines VariablenfeldesCLOSE#Schließen einer KanaloperationCSAVE*Variablenfeld abspeichernINPUT#Eingabeanforderung vom PeripheriegerätJOYST()SpielhebelabfrageLIST#Ausgeben des Programmquelltextes auf PeripheriegerätLOAD#Einlesen eines mit LIST# ausgegebenen ProgrammquelltextesNULLFestlegung der Anzahl der auszugebenden Dummyzeichen am Ende einer Zeile©gÿÊÎÍB T€Î€pi�¦Á~‚iã’†&€‰ƒ‚ãøUr‰ƒ‚ã[‚H‰ƒ‚ÿOPEN#Eröffnen einer KanaloperationPRINT#Zeichenausgabe auf PeripheriegerätSOUNDTonausgabe5%ÍÎ' €€6°˜¤¤€‚ÿSiehe auch:ŒKÎÍ�ÎA R€˜€pi�¦Á~‚iãšð£L€‰‚†"€ãjãIቂÿAlphabetische Übersicht der HC-BASIC-Befehle Inhalt HC-BASIC-Hilfe6ÎÅÎ1=ûŠBÿÿÿÿÅÎÓABS()2�Î÷Î* $€€V˜˜fäO€
‚ÿABS()¨kÅΟÏ= J€Ö€0¤¤€‚€‚€€‚€€€€‚ÿy=ABS(x)Diese mathematische Funktion bildet den Betrag aus x.Mathematische Entsprechung: y=|x|3÷ÎÒÏ' €€6°˜¤¤€‚ÿBeispiel:KŸÏ)2 4€2€0ÈG‚O€€€�ÒÏ)�Î��‚ÿ>?ABS(-42) 42OK>_5ÒÏ^' €€6°˜¤¤€‚ÿSiehe auch:u3)ÓB T€h€pi�¦Á~‚iãÆ€‰ƒ‚†"€ãPn¦�‰‚ÿSGN()Vorzeichen Mathematische Funktionen 6^	1ÿ݈«ÿÿÿÿ	ÒASC()2Ó;* $€€V˜˜fäO€
‚ÿASC()1	l% €€0¤¤€‚ÿy=ASC(x$)œw;% €î€0¤¤€‚ÿ("ASCII", American Standard Code for Information Interchange, Amerikanischer Standardkode für Informationsaustausch)†[lŽ+ &€¶€0¤¤€€€‚ÿDiese Funktion ermittelt vom ersten Zeichen in x$ den zugehörigen ASCII-Wert (0..255).3Á' €€6°˜¤¤€‚ÿBeispiel:QŽ2 4€>€0ÈG‚O€€€���‚ÿ>?ASC("ZIGARRE") 90OK>_5ÁG' €€6°˜¤¤€‚ÿSiehe auch:‹IÒB T€”€pi�¦Á~‚iãe�€‰ƒ‚†"€ã%©ßʼn‚ÿCHR$()Zeichen aus ASCII-Code bilden Zeichenketten-Manipulation 5G1ZBGÿÿÿÿ,AUTO1Ò8* $€€V˜˜fäO€
‚ÿAUTON)†% €R€0¤¤€‚ÿAUTO [<zeilennummer>[,<schrittweite>]]2
8¸% €€0¤¤€‚ÿ("selbst")ù¹†±@ N€s€0¤¤€€€€€€€‚‚€€‚ÿSelbständige Zeilennumerierung ab Zeile <zeilennummer> in Schrittweite <schrittweite>. Beide Parameter sind 10, falls weggelassen. Beenden des AUTO-Modus' erfolgt durch Druck auf die BREAK-Taste.Bereits existente Zeilen werden durch "*" hinter der Zeilennummer kenntlich gemacht; sie werden durch Neueingabe überschrieben! Falls das nicht beabsichtigt ist, BREAK-Taste drücken.Hinweis: Im Emulator liegt BREAK auf der Taste ESC.3¸ä' €€6°˜¤¤€‚ÿBeispiel:¡[±…F \€¶€0ÈG‚O€€€�€€�€€�€	€��‚ÿ>AUTO 100100*REM Leeres Unterprogramm110 RETURN120 (hier BREAK drücken)OK>_5äº' €€6°˜¤¤€‚ÿSiehe auch:r0…,B T€b€pi�¦Á~‚iãÚ€‰ƒ‚†"€ã¶É×\‰‚ÿEDITProgrammkorektur Editierkommandos 6ºb1w«¿ÿÿÿÿb£ATN()2,”* $€€V˜˜fäO€
‚ÿATN()É…b]	D V€€0¤¤€‚€‚€€€€‚€€€€‚ÿy=ATN(x)Diese mathematische Funktion liefert den Arcustangens von x im Bogenmaß.Mathematische Entsprechung: y=arctan x3”�	' €€6°˜¤¤€‚ÿBeispiel:P]	à	2 4€<€0ÈG‚O€€€���‚ÿ>?ATN(1)*180/PI 45OK>_.�	
' €€6°˜¤¤€‚ÿTip:S.à	a
% €\€0¤¤€‚ÿUmrechnung kartesische in Polarkoordinaten:L#
­
) "€F€0ÈG‚€‚ÿr=SQR(a*a+b*b): w=2*ATN(b/(r+a))Ba
ï
% €:€0¤¤€‚ÿeinzige Fallprüfung: -r<>a5­
$' €€6°˜¤¤€‚ÿSiehe auch:=ï
£B T€|€pi�¦Á~‚iã™r-€‰ƒ‚†"€ãPn¦�‰‚ÿDEF FNFunktionsdefinition Mathematische Funktionen 5$Ø1ªGÿÿÿÿØMBEEP1£	* $€€V˜˜fäO€
‚ÿBEEP7Ø@% €$€0¤¤€‚ÿBEEP [<anzahl>]1	q% €€0¤¤€‚ÿ("Pieps")ôÂ@e
2 2€…€0¤¤€€€€€‚ÿErzeugung eines oder mehrerer Signaltöne mit fester Länge und Frequenz. Gleichbedeutend mit PRINT CHR$(7).. <anzahl> ist maximal 255. Wird <anzahl> weggelassen, wird ein Pieps ausgegeben.5qš
' €€6°˜¤¤€‚ÿSiehe auch:³ce
MP p€È€pi�¦Á~‚iã[‚H€‰ƒâL!‰‚ãeO¯‰ƒ‚†"€ã0jL‰‚ÿSOUNDTonausgabe (nur KC85)PRINTZeichenausgabe auf Bildschirm Arbeit mit Peripherie 6š
ƒ1O¿@€ÿÿÿÿƒ�@BLOAD2Mµ* $€€V˜˜fäO€
‚ÿBLOAD-ƒâ% €€0¤¤€‚ÿBLOADG"µ)% €D€0¤¤€‚ÿ("binary load"="binäres Laden")‡bâ°% €Ä€0¤¤€‚ÿDieses Kommando beginnt sofort, ein Maschinenprogramm von Kassette einzulesen. Keine Parameter.5)@' €€6°˜¤¤€‚ÿSiehe auch:°@M�?°�@B T€€€pi�¦Á~‚iã
€‰ƒ‚†"€ã¶É×\‰‚ÿCLOADEinlesen eines BASIC-Programms Editierkommandos 7@Ä@1—|‚ÿÿÿÿÄ@$DBORDER3	�@÷@* $€€V˜˜fäO€
‚ÿBORDER9Ä@0A% €(€0¤¤€‚ÿBORDER <farbcode>2
÷@bA% €€0¤¤€‚ÿ("Grenze")Ú¡0A<C9 @€C€0¤¤€âL!‰‚âL!‰€€‚ÿDieser Befehl setzt die Farbe des Bildrandes. Funktioniert aufgrund von ansonsten fehlender Hardware nur mit KC87 mit installierter Farboption. Zudem setzt dieser Befehl den KC87 immer in den 24-Zeilen-Modus zurück.Beim KC85 ist dieser Befehl ebenfalls implementiert, steuert aber beim KC85/3 zwei freie Bits an der PIO, und beim KC85/4 hängt dort der RAM8 "dran". BORDER führt hierbei zum sicheren Absturz.5bAqC' €€6°˜¤¤€‚ÿSiehe auch:³a<C$DR t€Æ€pi�¦Á~‚iãB怉ƒ‚†"€ãOÜþº‰‚†"€ã11Õ‰‚ÿOUTByte-Portausgabe (20-Zeilen-Modus) Farbcodes für KC87 und KC85 Ein- und Ausgabe 4qCXD1K@€„ƒÿÿÿÿXDoFBYE0$DˆD* $€€V˜˜fäO€
‚ÿBYE+XD³D% €€0¤¤€‚ÿBYE3ˆDæD% €€0¤¤€‚ÿ("Tschüß!")ç´³DÍE3 4€i€0¤¤€‚âL!‰âL!‰‚ÿRückkehr zum Betriebssystem. Keine Parameter.Programm und Variablen bleiben bei Rückkehr mit REBASIC (KC85) bzw. WBASIC (KC87) erhalten. Fortsetzung mit CONT nicht möglich.5æDF' €€6°˜¤¤€‚ÿSiehe auch:m+ÍEoFB T€X€pi�¦Á~‚iãËœ€‰ƒ‚†"€ã¶É×\‰‚ÿENDProgrammende Editierkommandos 5F¤F1Ú|‚%…ÿÿÿÿ¤FIICALL1oFÕF* $€€V˜˜fäO€
‚ÿCALLT.¤F)G& €\€0¤¤€�‚ÿCALL <startadresse>CALL*<startadresse_hex>1ÕFZG% €€0¤¤€‚ÿ("rufen")%þ)GH' €ý€0¤¤€‚‚ÿAufruf eines Maschinenprogramms unter Angabe einer (dezimalen) Startadresse (oder Ausdruck) oder einer hexadezimalen Startadresse (konstant).Dies ist unverständlicherweise die einzige Stelle des HC-BASIC, wo Hexadezimalzahlen verwendet werden können.5ZG´H' €€6°˜¤¤€‚ÿSiehe auch:•SHIIB T€¨€pi�¦Á~‚iã@€‰ƒ‚†"€ãwÎè뉂ÿUSR()Aufruf Maschinenprogramm mit Rückgabewert Maschinennahe Anweisungen 7´H€I1œ„ƒ*†ÿÿÿÿ€IåKCHR$()3	II³I* $€€V˜˜fäO€
‚ÿCHR$()1€IäI% €€0¤¤€‚ÿy$=CHR(x)?³I#J% €4€0¤¤€‚ÿ("character"="Zeichen")€UäI£J+ &€ª€0¤¤€€€‚ÿDiese Funktion liefert ein Zeichen mit dem in x angegebenen ASCII-Wert (0..255).3#JÖJ' €€6°˜¤¤€‚ÿBeispiel:J£J K2 4€0€0ÈG‚O€€€���‚ÿ>?CHR$(77) MOK>_5ÖJUK' €€6°˜¤¤€‚ÿSiehe auch:�N KåKB T€ž€pi�¦Á~‚iã½€€‰ƒ‚†"€ã%©ßʼn‚ÿASC()ASCII-Code eines Zeichens ermitteln Zeichenketten-Manipulation >
UK#L1”%…,ˆÿÿÿÿ#LyOCIRCLE; KreisT$åKwL0 0€H€V˜˜fäO€
âL!‰‚ÿCIRCLE (nur KC85 mit ROM-BASIC)@#L·L% €6€0¤¤€‚ÿCIRCLE <x>,<y>,<r>[,<g>]1wLèL% €€0¤¤€‚ÿ("Kreis")´Q·LœNc ”€£€0¤¤€€€€€€€€€€€‚€€€€€€€€€€‚ÿZeichnen eines Kreises mit Mittelpunkt <x> und <y>, mit Radius <r> und mit Grafikfarbe <g>. Wird <g> weggelassen, wird die zuletzt verwendete Grafikfarbe benutzt.Die Koordinaten x und y sind Pixelkoordinaten (unabhängig von der WINDOW-Einstellung); der Ursprung (0,0) liegt links unten. 0<=x<=319, 0<=y<=255, r>=05èLÑN' €€6°˜¤¤€‚ÿSiehe auch:¨VœNyOR t€°€pi�¦Á~‚iãı"€‰ƒ‚†"€ãOÜþº‰‚†"€ã4Ÿ&B‰‚ÿLINEZeichnen einer Linie (Strecke) Farbcodes für KC85 Grafik-Funktionen 6ÑN¯O1‰*†¯ÿÿÿÿ¯O
„CLEAR2yOáO* $€€V˜˜fäO€
‚ÿCLEARN)¯O;€% €R€0¤áO;€yO¤€‚ÿCLEAR [<string_speicher>[,<ram_ende>]]3áOn€% €€0¤¤€‚ÿ("löschen")*;€˜‚( €€0¤¤€‚‚‚ÿLöschen des Variablenspeichers; Festlegung des Stringspeichers und der BASIC-Speicherobergrenze. Diese Angaben können von rechts nach links weggelassen werden; dann wird nichts an der Speicherverwaltung geändert.Ein vergrößerter String-Speicher ist bei allen zeichenkettenintensiven Programmen erforderlich (z.B. Datenbanken). Mit der BASIC-Speicherobergrenze kann Platz für Maschinenprogramme geschaffen werden.Da beides Integerzahlen sind, müssen für Festlegungen über 32KB negative Zahlen verwendet werden!5n€Í‚' €€6°˜¤¤€‚ÿSiehe auch:ƒI˜‚Pƒ: D€’€pi�¦Á~‚iã\Ü€‰ƒ‚ãçû‰ƒ‚ÿNEWLöschen des Programm- und VariablenspeichersRUNProgrammstartV"Í‚¦ƒ4 8€F€0¤¤€†"€ãì±&‰‚ÿ HC-BASIC-Typen und Speicherd$Pƒ
„@ P€J€pi�¦Á~‚i€†"€ã©Ø!Ô‰€€‚ÿ Programm-Steueranweisungen 6¦ƒ@„1»,ˆÖÿÿÿÿ@„ňCLOAD2
„r„* $€€V˜˜fäO€
‚ÿCLOAD3@„¥„% €€0¤¤€‚ÿCLOAD"name"K&r„ð„% €L€0¤¤€‚ÿ("cassette load"="Kassetten-Laden")—p¥„‡†' €á€0¤¤€‚‚ÿEinlesen eines BASIC-Programms von Kassette. Der Dateiname wird auf Gleichheit überprüft, wobei Groß- und Kleinschreibung von Belang ist! BASIC-Programme werden auf Kassette mit 3 "S"+128 (ungeschützt) oder mit 3 "W"+128 (geschützt) abgespeichert.Normale BASIC-Programme haben am Ende des Speicherabzugs ein CHR$(3)-Zeichen; selbststartende Programme ein CHR$(26)?2ð„¹†' €€6°˜¤¤€‚ÿBeachte:.‡†ç‡, &€€0¤¤€ã\܉‚ÿBefindet sich bereits ein Programm im Speicher, wird das neue hinten angehängt, unabgängig von der Numerierung der beiden Programme. Dadurch entstehen in den meisten Fällen nicht mehr korrigierbare Inkonsistenzen. Daher in der Regel vorher NEW aufrufen.5¹†ˆ' €€6°˜¤¤€‚ÿSiehe auch:©_ç‡ňJ d€À€pi�¦Á~‚iã\Ü€‰ƒ‚ãçû‰ƒ‚†"€ã¶É×\‰‚ÿNEWLöschen des Programm- und VariablenspeichersRUNProgrammstart Editierkommandos 7ˆüˆ1¯ªÿÿÿÿüˆÓ‹CLOAD*3	ň/‰* $€€V˜˜fäO€
‚ÿCLOAD*?üˆn‰% €4€0¤¤€‚ÿCLOAD*"name",<feldname>K&/‰¹‰% €L€0¤¤€‚ÿ("cassette load"="Kassetten-Laden")c<n‰‹' €y€0¤¤€‚‚ÿEinlesen eines Variablenfeldes von Kassette. Der Dateiname wird auf Gleichheit überprüft, wobei Groß- und Kleinschreibung von Belang ist! BASIC-Felder werden auf Kassette mit 3 "T"+128 (ungeschützt) oder mit 3 "X"+128 (geschützt) abgespeichert.Nach dem erfolgreichen Ladevorgang erscheint die Meldung FILE FOUND.5¹‰Q‹' €€6°˜¤¤€‚ÿSiehe auch:‚@‹Ó‹B T€‚€pi�¦Á~‚iãÕʳ­€‰ƒ‚†"€ã0jL‰‚ÿCSAVE*Variablenfeld abspeichern Arbeit mit Peripherie 7Q‹
Œ1QÖÁÿÿÿÿ
Œ$ŽCLOSE#3	Ó‹=Œ* $€€V˜˜fäO€
‚ÿCLOSE#>
Œ{Œ& €0€0¤¤€�‚ÿCLOSEI#<n>CLOSEO#<n>D=Œ¿Œ% €>€0¤¤€‚ÿ("Schließe Ein/Ausgabe Nr.")«…{Œj�& €€0¤¤€‚ÿSchließen einer Kanaloperation. n muß eine Zahl zwischen 1 und 3 sein (kein Ausdruck; das ist ein HC-BASIC-Implementationsfehler).5¿ŒŸ�' €€6°˜¤¤€‚ÿSiehe auch:…Cj�$ŽB T€ˆ€pi�¦Á~‚iã’†&€‰ƒ‚†"€ã0jL‰‚ÿOPEN#Eröffnen einer Kanaloperation Arbeit mit Peripherie 4Ÿ�XŽ1üª€ÿÿÿÿXŽ,ÀCLS0$ŽˆŽ* $€€V˜˜fäO€
‚ÿCLS+XŽ³Ž% €€0¤¤€‚ÿCLSL'ˆŽÿŽ% €N€0¤¤€‚ÿ("clear screen"="Lösche Bildschirm")’m³Ž‘�% €Ú€0¤¤€‚ÿBildschirm bzw. Fensterinhalt in momentaner Hintergrundfarbe löschen. Gleichbedeutend mit PRINT CHR$(12);.5ÿŽÆ�' €€6°˜¤¤€‚ÿSiehe auch:Z(‘�,À2 4€P€pi�¦Á~‚iãeO¯€‰ƒ‚ÿPRINTÆ�,À$ŽZeichenausgabe auf Bildschirm6Æ�bÀ1¼Ág�ÿÿÿÿbÀèÂCOLORE,À§À0 0€*€V˜˜fäO€
âL!‰‚ÿCOLOR (nur KC85);bÀâÀ% €,€0¤¤€‚ÿCOLOR vfarbe,hfarbe1§ÀÁ% €€0¤¤€‚ÿ("Farbe")ðÂâÀÂ. *€…€0¤¤€‚‚âL!‰‚ÿEinstellen der Vorder- und Hintergrundfarbe für die folgenden Zeichenausgabebefehle.Auch als Farbanweisung in der Ausgabe von PRINT verwendbar.Bei KC87 Ausweich mit INK und PAPER möglich.5Á8Â' €€6°˜¤¤€‚ÿSiehe auch:°^ÂèÂR t€À€pi�¦Á~‚iãeO¯€‰ƒ‚†"€ãOÜþº‰‚†"€ã11Õ‰‚ÿPRINTZeichenausgabe auf Bildschirm Farbcodes für KC87 und KC85 Ein- und Ausgabe 58ÂÃ1€K‚ÿÿÿÿÃÅCONT1èÂNÃ* $€€V˜˜fäO€
‚ÿCONT,ÃzÃ% €€0¤¤€‚ÿCONTANûÃ% €8€0¤¤€‚ÿ("continue"="fortsetzen")À“zÃ{Ä- (€'€0¤¤€ãr+‰‚‚ÿFortsetzen des Programms nach BREAK-Taste oder STOP-Anweisung)Fortsetzung ist nicht möglich nach Quelltext-Veränderung (EDIT u.ä.) sowie BYE.5»Ã°Ä' €€6°˜¤¤€‚ÿSiehe auch:R{ÄÅ: D€2€pi�¦Á~‚i€†"€ã¶É×\‰‚ÿ Editierkommandos 6°Ä8Å1¼g�]ƒ ÿÿÿÿ8žÇCOS()2ÅjÅ* $€€V˜˜fäO€
‚ÿCOS()08ÅšÅ% €€0¤¤€‚ÿy=COS(x)(jÅÂÅ% €€0¤¤€‚ÿБšÅ’Æ? L€#€0¤¤€€€€€‚€€€€‚ÿDiese mathematische Funktion liefert den Kosinus des Winkels x, welcher im Bogenmaß anzugeben ist.Mathematische Entsprechung: y=cos x3ÂÅÅÆ' €€6°˜¤¤€‚ÿBeispiel:K’ÆÇ2 4€2€0ÈG‚O€€€���‚ÿ>?COS(PI/2) 0OK>_5ÅÆEÇ' €€6°˜¤¤€‚ÿSiehe auch:y7ǾÇB T€p€pi�¦Á~‚i〉ƒ‚†"€ãPn¦�‰‚ÿSIN()Sinus-Funktion Mathematische Funktionen 6EÇôÇ1ŸK‚Ä„!ÿÿÿÿôÇ]ÊCSAVE2¾Ç&È* $€€V˜˜fäO€
‚ÿCSAVE3ôÇYÈ% €€0¤¤€‚ÿCSAVE"name"L'&È¥È% €N€0¤¤€‚ÿ("cassette save"="Kassetten-Retten")àYÈ«É& €Á€0¤¤€‚ÿBASIC-Programm auf Kassette abspeichern. Groß- und Kleinschreibung ist von Belang! BASIC-Programme werden auf Kassette mit 3 "S"+128 (ungeschützt) abgespeichert. Bei gesetzter EDIT/LIST-Sperre ist Speichern nicht möglich.5¥ÈàÉ' €€6°˜¤¤€‚ÿSiehe auch:};«É]ÊB T€x€pi�¦Á~‚iãÕʳ­€‰ƒ‚†"€ã¶É×\‰‚ÿCSAVE*Variablenfeld abspeichern Editierkommandos 7àÉ”Ê1¦]ƒ1†"ÿÿÿÿ”ÊÍCSAVE*3	]ÊÇÊ* $€€V˜˜fäO€
‚ÿCSAVE*?”ÊË% €4€0¤¤€‚ÿCSAVE*"name",<feldname>L'ÇÊRË% €N€0¤¤€‚ÿ("cassette save"="Kassetten-Retten")õÏËGÌ& €Ÿ€0¤¤€‚ÿVariablenfeld abspeichern. Groß- und Kleinschreibung ist von Belang! BASIC-Felder werden auf Kassette mit 3 "T"+128 (ungeschützt) abgespeichert. Bei gesetzter EDIT/LIST-Sperre ist Speichern nicht möglich.5RË|Ì' €€6°˜¤¤€‚ÿSiehe auch:‡EGÌÍB T€Œ€pi�¦Á~‚iã0W¬€‰ƒ‚†"€ã0jL‰‚ÿCLOAD*Einlesen eines Variablenfeldes Arbeit mit Peripherie 9|Ì<Í1”Ä„#ÿÿÿÿ<Í}CSRLIN()5ÍqÍ* $€€V˜˜fäO€
‚ÿCSRLIN()3<ͤÍ% €€0¤¤€‚ÿy=CSRLIN(x)F!qÍêÍ% €B€0¤¤€‚ÿ("cursor line"="Kursor-Zeile")tO¤Í^Î% €ž€0¤¤€‚ÿLiefert die Nummer der Bildschirmzeile, in welcher sich der Cursor befindet.טêÍ5Ï? L€1€pµ€¤s‚´€€ƒ‚€€ƒ‚€€ƒ‚ÿx=0Zeilennummer bezüglich des maximalen Fensters (Bildschirms)x>0Zeilennummer bezüglich des aktuellen Fenstersx<0nicht definiertes Ergebnis5^ÎjÏ' €€6°˜¤¤€‚ÿSiehe auch:®5Ï}Y €€_€pi�¦Á~‚iã¶�Áû€‰ƒâL!‰‚ãx쉃‚ãÐÏøZ‰ƒ‚†"€ã11Õ‰‚ÿLOCATEPlazieren des Cursors im aktuellen Fenster (nur KCjÏ}Í85)POS()Position in Ausgabezeile ermittelnWINDOWFestlegen eines Ausgabe-Fensters Ein- und Ausgabe 5jϲ131†õ$ÿÿÿÿ²°DATA1}ã* $€€V˜˜fäO€
‚ÿDATAG"²*% €D€0¤¤€‚ÿDATA <konstante>,<konstante>...1ã[% €€0¤¤€‚ÿ("Daten")iD*Ä% €ˆ€0¤¤€‚ÿDefinition einer Datenliste, die mit READ ausgelesen werden kann.5[ù' €€6°˜¤¤€‚ÿSiehe auch:·mÄ°J d€Ü€pi�¦Á~‚iã"Ú)€‰ƒ‚ãÚ¼ìɉƒ‚†"€ã11Õ‰‚ÿREADLesen von Werten aus DATA-AnweisungenRESTOREDATA-Zeiger setzen/rücksetzen Ein- und Ausgabe 7ùç1³%ÿÿÿÿçËDEEK()3	°* $€€V˜˜fäO€
‚ÿDEEK()1çK% €€0¤¤€‚ÿy=DEEK(x)H#“% €F€0¤¤€‚ÿ("double peek"="doppelt spähen")ßK¥3 4€¿€0¤¤€€€€€‚‚ÿLesen eines Integer-Wertes (2 Bytes, vorzeichenbehaftet) von Adresse x (Low-Teil) und x+1 (High-Teil) gemäß Intel-Notation.Auch die Adresse muß vorzeichenbehaftet angegeben werden; man beachte also die 32-KB-Grenze!5“Ú' €€6°˜¤¤€‚ÿSiehe auch:ñ˜¥ËY €€3€pi�¦Á~‚iã(€‰ƒ‚ã¯m'‰ƒ‚ãõÃ剃âL!‰‚†"€ãwÎè뉂ÿDOKEInteger-SpeicherschreibenPEEK()Byte-SpeicherlesenVPEEK()Byte-Speicherlesen aus IRM-Adresse (nur KC85) Maschinennahe Anweisungen 7Ú1»õø&ÿÿÿÿ†
DEF FN3	Ë5* $€€V˜˜fäO€
‚ÿDEF FNR-‡% €Z€0¤¤€‚ÿDEF FN<bezeichner>(<parameter>)=<ausdruck>P+5×% €V€0¤¤€‚ÿ("define function"="definiere Funktion")â‡ò9 @€Å€0¤¤€€€€€€€‚‚ÿDefinition einer numerischen Funktion unter der Bezeichnung FN<bezeichner>. Der <parameter> wird in <ausdruck> bei Aufruf durch den aktuellen Parameter ersetzt (Wert-Aufruf).Kann nicht im Direkt-Modus benutzt werden!3×%' €€6°˜¤¤€‚ÿBeispiel:€@ò¥@ P€€€0ÈG‚€€€�€€�€€���‚ÿ>10 DEF FNSQ(X)=X*X>20 ?FNSQ(COS(PI/4))>RUN .5OK>_?%ä' €0€6°˜¤¤€‚ÿNützliche Funktionen:3¥	% €€0¤¤€‚ÿArcussinus:Hä_	) "€>€0ÈG‚O€‚ÿDEF FNAS(x)=ATN(x/SQR(1-x*x)5	”	% € €0¤¤€‚ÿArcuskosinus:D_	Ø	) "€6€0ÈG‚O€‚ÿDEF FNAC(x)=FNAS(x)+PI/25”	
' €€6°˜¤¤€‚ÿSiehe auch:y7Ø	†
B T€p€pi�¦Á~‚i〉ƒ‚†"€ãPn¦�‰‚ÿSIN()Sinus-Funktion Mathematische Funktionen 7
½
10³ä'ÿÿÿÿ½
¶DELETE3	†
ð
* $€€V˜˜fäO€
‚ÿDELETEK&½
;% €L€0¤¤€‚ÿDELETE <erste_zeile>,<letzte_zeile>3ð
n% €€0¤¤€‚ÿ("löschen")¡p;1 2€à€0¤¤€€€€€‚ÿProgrammzeilen von <erste_zeile> bis einschließlich <letzte_zeile> löschen. Beide Parameter sind Pflicht!5nD' €€6°˜¤¤€‚ÿSiehe auch:r0¶B T€b€pi�¦Á~‚iãÚ€‰ƒ‚†"€ã¶É×\‰‚ÿEDITProgrammkorektur Editierkommandos 4Dê1IøV€(ÿÿÿÿê›ADIM0¶
* $€€V˜˜fäO€
‚ÿDIMS.êm
% €\€0¤¤€‚ÿDIM <feldname>(<maxindex>[,<maxindex2>...])A
®
% €8€0¤¤€‚ÿ("dimension"="Dimension")ò¸m
¬@: B€q€0¤¤€€€‚‚ãὉã(‰‚ÿDimensioniert ein Variablenfeld. Ohne Dimensionierung wird als <maxindex> als 10 angenommen. Da BASIC-Felder grundsätzlich mit Index 0 beginnen, sind das 11 Elemente. Bei höheren Indizes ist Dimensionierung stets erforderlich. Auch mehrdimensionale Felder sind problemlos möglich, solange der Speicher und die Länge der BASIC-Eingabezeile reicht.Zeichenketten-Felder werden mit leeren Zeichenketten initialisiert.Eine Umdimensionierung vorhandener Felder ist nicht möglich; auch dann nicht, wenn der Inhalt verworfen werden kann. H®
¬@¶ier hilft nur CLEAR, mit dem Verlust aller Variablen, dann DIM. Wichtige Variablen können über das CLEAR hinweg mit DOKE u. ä. zwischengespeichert werden.5®
á@' €€6°˜¤¤€‚ÿSiehe auch:V"¬@7A4 8€F€0¤¤€†"€ãì±&‰‚ÿ HC-BASIC-Typen und Speicherd$á@›A@ P€J€pi�¦Á~‚i€†"€ã©Ø!Ô‰€€‚ÿ Programm-Steueranweisungen 57AÐA1)ä$‚)ÿÿÿÿÐAÄDDOKE1›AB* $€€V˜˜fäO€
‚ÿDOKE9ÐA:B% €(€0¤¤€‚ÿDOKE <adr>,<wert>J%B„B% €J€0¤¤€‚ÿ("double poke"="doppelt stochern")ã:BšC3 4€Ç€0¤¤€€€€€‚‚ÿSchreiben eines Integer-Wertes (2 Bytes, vorzeichenbehaftet) auf Adresse x (Low-Teil) und x+1 (High-Teil) gemäß Intel-Notation.Auch die Adresse muß vorzeichenbehaftet angegeben werden; man beachte also die 32-KB-Grenze!5„BÏC' €€6°˜¤¤€‚ÿSiehe auch:õœšCÄDY €€;€pi�¦Á~‚iãËÞ€‰ƒ‚ãå¶'‰ƒ‚ã+
扃âL!‰‚†"€ãwÎè뉂ÿDEEK()Integer-SpeicherlesenPOKEByte-SpeicherschreibenVPOKE()Byte-Speicherschreiben auf IRM-Adresse (nur KC85) Maschinennahe Anweisungen 5ÏCùD1sV€Í„*ÿÿÿÿùD7IEDIT1ÄD*E* $€€V˜˜fäO€
‚ÿEDIT;ùDeE% €,€0¤¤€‚ÿEDIT <zeilennummer>5*EšE% € €0¤¤€‚ÿ("editieren")à§eEzF9 @€O€0¤¤€€€€€€€‚‚ÿZeilenweise Programmkorrektur. Wird <zeilennummer> weggelassen, beginnt EDIT mit Zeile 0 (nicht 10). Im EDIT-Modus haben folgende Tasten besondere Bedeutung:�;šE
HU x€y€p±�¤›~‚±€€ƒ‚€€ƒ€€€€‚€€†"€ƒ‚ÿENTERÜbernahme der veränderten Zeile und Anzeige der nächsten Zeile, falls vorhanden,BREAKAbbruch des EDIT-Modus, aktuelle Zeile wird nicht übernommen,CURSOR Übergehen der Änderungen der aktuellen Zeile, Anzeige der nächsten Zeile (ist schneller, als bei nicht geänderten Zeilen ENTER zu drücken).uIzFH, (€’€0¤¤€‚€€‚ÿEDIT im BASIC-Programm angewendet bricht die Programmausführung ab.5
H´H' €€6°˜¤¤€‚ÿSiehe auch:ƒAH7IB T€„€pi�¦Á~‚i㪲"€‰ƒ‚†"€ã¶É×\‰‚ÿLISTAuflisten des Programmquelltextes Editierkommandos 4´HkI1È$‚b…+ÿÿÿÿkIÿJEND07I›I* $€€V˜˜fäO€
‚ÿEND+kIÆI% €€0¤¤€‚ÿEND0›IöI% €€0¤¤€‚ÿ("Ende")pKÆIfJ% €–€0¤¤€‚ÿProgrammende. Der BASIC-Interpreter geht wieder in den Direktmodus über.5öI›J' €€6°˜¤¤€‚ÿSiehe auch:d$fJÿJ@ P€J€pi�¦Á~‚i€†"€ã©Ø!Ô‰€€‚ÿ Programm-Steueranweisungen 6›J5K1¶Í„o†,ÿÿÿÿ5KµMEXP()2ÿJgK* $€€V˜˜fäO€
‚ÿEXP()05K—K% €€0¤¤€‚ÿy=EXP(x)(gK¿K% €€0¤¤€‚ÿ¥m—KdL8 @€Ú€0¤¤€€€‚€€€€‚ÿDiese mathematische Funktion liefert die Exponentialfunktion von x.Mathematische Entsprechung: y=ex3¿K—L' €€6°˜¤¤€‚ÿBeispiel:h0dLÿL8 @€`€0ÈG‚O€€€�€	€��‚ÿ>?EXP(1) 2.71828 (=Eulersche Zahl)OK>_5—L4M' €€6°˜¤¤€‚ÿSiehe auch:�?ÿLµMB T€€€pi�¦Á~‚iãÒ€‰ƒ‚†"€ãPn¦�‰‚ÿLN()Natürlicher Logarithmus Mathematische Funktionen A4MöM1+b…Ž-ÿÿÿÿöMG„FOR TO STEP NEXT=µM3N* $€&€V˜˜fäO€
‚ÿFOR TO STEP NEXTžwöMÑN' €î€0¤¤€��‚ÿFOR <laufvariable=startwert> TO <endwert> [STEP <schrittweite>]<anweisungen>NEXT [<laufvariable>[,<laufvariable>]]M(3NO% €P€0¤¤€‚ÿ("von".."bis".."Schritt".."nächstes")·fÑNá�Q p€Í€0¤¤€€€€€€€€€‚€€€€€€‚ÿFestlegen einer Programmschleife. Die Laufvariable muß numerisch sein, darf jedoch auch gebrochen sein. Sofern STEP <schrittweite> nicht angegOá�µMeben ist, benutzt dieses Konstrukt die Schrittweite 1 oder -1, je nachdem, ob der <endwert> größer oder kleiner als <startwert> ist. Die Programmschleife mit den <anweisungen> wird mindestens 1x durchlaufen.Die Anweisung NEXT darf auf einer beliebig anderen BASIC-Zeile stehen; die Angabe der <laufvariable> dort ermöglicht dem Interpreter eine zusätzliche Syntaxprüfung bzw. das Benutzen der gewünschten Schleife bei bei verschachtelten FOR-Anweisungen.3O‚' €€6°˜¤¤€‚ÿBeispiel:Gá�[ƒ; D€€0ÈG‚O€€€�����������‚ÿ>LIST10 PRINT "*** Sparschwein ***"20 INPUT " Start-Spareinlage:";G30 INPUT "  Laufzeit (Jahre):";J40 INPUT "Jahreszinssatz (%):";Z50 FOR I=1 TO J60 G=G+G*Z/10070 NEXT I80 G=INT(G*100+0.5)/100: !Ganze Pfennige90 PRINT "Guthaben nach";J;" Jahren:";GOK>_5‚�ƒ' €€6°˜¤¤€‚ÿSiehe auch:·g[ƒG„P p€Ð€pi�¦Á~‚iãGÍ€‰ƒ‚ãI‰ƒ‚†"€ã©Ø!Ô‰€€‚ÿGOTOProgramm-SprungIF THEN ELSEBedingte Programmabarbeitung Programm-Steueranweisungen 6�ƒ}„1Þo†[.ÿÿÿÿ}„%‰FRE()2G„¯„* $€€V˜˜fäO€
‚ÿFRE();}„ê„& €*€0¤¤€�‚ÿy=FRE(x)y=FRE(x$)7¯„!…% €$€0¤¤€‚ÿ("free"="frei")®�ê„φ- (€€0¤¤€‚ãὉ‚ÿDiese Funktion liefert den freien Speicherplatz für Variablen und Arrays bei Angabe einer (beliebigen) Zahl-Variable (oder Ausdruck)Bei Angabe eines beliebigen Zeichenketten-Ausdrucks liefert FRE den Platz im Zeichenkettenspeicherbereich (erster Parameter bei CLEAR). Dazu wird eine Garbage-Collection durchgeführt, d.h. FRE(x$) kann bisweilen sehr lange dauern (einige Minuten).3!…‡' €€6°˜¤¤€‚ÿBeispiel:­fφ¯‡G ^€Ì€0ÈG‚O€€€�€	€��€€�€	€��‚ÿ>?FRE(0) 31442 (je nach Speicherbelegung)OK>?FRE("") 256 (hier: "frisches" BASIC)OK>_5‡ä‡' €€6°˜¤¤€‚ÿSiehe auch:‡U¯‡kˆ2 4€ª€pi�¦Á~‚iãá½€‰ƒ‚ÿCLEARLöschen des Variablenspeichers; Begrenzung des String- und BASIC-SpeichersV"ä‡Áˆ4 8€F€0¤¤€†"€ãì±&‰‚ÿ HC-BASIC-Typen und Speicherd$kˆ%‰@ P€J€pi�¦Á~‚i€†"€ã©Ø!Ô‰€€‚ÿ Programm-Steueranweisungen 6Áˆ[‰1	Ž/ÿÿÿÿ[‰.�GOSUB2%‰�‰* $€€V˜˜fäO€
‚ÿGOSUB<[‰ɉ% €.€0¤¤€‚ÿGOSUB <zeilennummer>Q,�‰Š% €X€0¤¤€‚ÿ("go subroutine"="Gehe zu Unterprogramm")OɉiŒL f€€0¤¤€€€€€ãS‰€€€€‚‚€€‚ÿUnterprogrammaufruf ab Zeilennummer <zeilennummer>. Ein Ausdruck als <zeilennummer> ist nicht zulässig; hierzu ON x GOSUB verwenden. Wird <zeilennummer> weggelassen, wird 0 angenommen. Nach der GOSUB-Anweisung folgende Anweisungen werden nach dem RETURN des Unterprogramms abgearbeitet.Das modernere Konzept von aktuellen Parametern ist HC-BASIC nicht bekannt; ggf. müssen Parameter vorher in festgelegte Variablen abgelegt werden.GOSUBs sind schachtelbar, solange der BASIC-Arbeitsspeicher reicht.5ŠžŒ' €€6°˜¤¤€‚ÿSiehe auch:�HiŒ.�H `€’€pi�¦Á~‚iã
`.€‰ƒ‚†"€ã©Ø!Ô‰€€‚ÿRETURNRückkehr aus Unterprogramm Programm-Steueranweisungen 5žŒc�1Ã[€0ÿÿÿÿc�ÀGOTO1.�”�* $€€V˜˜fäO€
‚ÿGOTO;c�Ï�% €,€0¤¤€‚ÿGOTO <zeilennummer>;”�
Ž% €,€0¤¤€‚ÿ("go to"="Gehe zu")ÈÏ�
�8 >€‘€0¤¤€€€€€ãS‰‚ÿSpringt zur angegebenen Zeilennummer. Wird <zeilennummer> weggelassen, wird zur Zeile 0 gesprungen. Variablen oder Ausdrücke sind für <zeilennummer> nicht erlaubt; hierzu ON x GOTO verwenden.5
Ž?�' €€6°˜¤¤€‚ÿSiehe auch:²e
�ÀM j€Ì€0¤¤‚!ãÈtÖ€‰ƒ‚ãI‰ƒ‚†"€ã©Ø!Ô‰€€‚ÿGOSUBUnterprogrammaufrufIFStart bedingter Anweisungsblock Programm-Steueranweisungen ?�À.�=?�IÀ1˜	ƒ1ÿÿÿÿIÀ¤ÄIF THEN ELSE9À‚À* $€€V˜˜fäO€
‚ÿIF THEN ELSEå¯IÀgÁ6 :€_€0¤¤€‚€‚€‚€‚€‚ÿIF <ausdruck> THEN <anweisung> [:ELSE <anweisung>]oderIF <ausdruck> THEN <zeilennummer> [:ELSE <anweisung>]oderIF <ausdruck> GOTO <zeilennummer> [:ELSE <anweisung>]A‚À¨Á% €8€0¤¤€‚ÿ("Wenn".."dann".."sonst")ù¢gÁ¡ÃW |€E€0¤¤€€€€€€€€€‚€€€€€€€€‚ÿDer <ausdruck> wird ausgewertet. Ist das Ergebnis 0, wird der ELSE-Zweig ausgeführt (falls vorhanden), ansonsten der THEN- bzw. GOTO-Zweig.Aufgrund der begrenzten Länge der BASIC-Zeile müssen lange Anweisungs-Blöcke auf mehrere Zeilen aufgeteilt werden, die mit GOTO angesprungen werden ("GOTO-Spaghetti"). Die Schlüsselwörter THEN und ELSE müssen sich auf der gleichen BASIC-Zeile wie IF befinden!5¨ÁÖÃ' €€6°˜¤¤€‚ÿSiehe auch:Î~¡Ã¤ÄP p€þ€pi�¦Á~‚iãGÍ€‰ƒ‚ãS‰ƒ‚†"€ã©Ø!Ô‰€€‚ÿGOTOProgramm-SprungONFallweise Mehrfachverzweigung zu verschiedenen Programmteilen Programm-Steueranweisungen 4ÖÃØÄ1h€2„2ÿÿÿÿØÄÇINK0¤ÄÅ* $€€V˜˜fäO€
‚ÿINK6ØÄ>Å% €"€0¤¤€‚ÿINK <farbcode>1ÅoÅ% €€0¤¤€‚ÿ("Tinte")®‡>ÅÆ' €€0¤¤€‚‚ÿEinstellen der Vordergrundfarbe für die folgenden Zeichenausgabebefehle.Auch als Farbanweisung in der Ausgabe von PRINT verwendbar.5oÅRÆ' €€6°˜¤¤€‚ÿSiehe auch:ºpÆÇJ d€â€pi�¦Á~‚iã¬àš€‰ƒ‚ãeO¯‰ƒ‚†"€ãOÜþº‰‚ÿPAPEREinstellen der HintergrundfarbePRINTZeichenausgabe auf Bildschirm Farbcodes auf KC87 und KC857RÆCÇ1C	ƒ<…3ÿÿÿÿCÇOÉINKEY$3	ÇvÇ* $€€V˜˜fäO€
‚ÿINKEY$1CǧÇ% €€0¤¤€‚ÿy$=INKEY$9vÇàÇ% €(€0¤¤€‚ÿ("Tasteneingabe")ÅŸ§Ç¥È& €?€0¤¤€‚ÿDiese parameterlose Funktion liefert das Zeichen der Taste, die gerade gedrückt wird. Wird keine Taste gedrückt, liefert diese Funktion einen leeren String.5àÇÚÈ' €€6°˜¤¤€‚ÿSiehe auch:u3¥ÈOÉB T€h€pi�¦Á~‚iãþ}=€‰ƒ‚†"€ã11Õ‰‚ÿINPUTEingabeanforderung Ein- und Ausgabe 6ÚÈ…É1(2„'†4ÿÿÿÿ…ÉwËINP()2OÉ·É* $€€V˜˜fäO€
‚ÿINP()0…ÉçÉ% €€0¤¤€‚ÿy=INP(x);·É"Ê% €,€0¤¤€‚ÿ("input"="Eingabe")¦{çÉÈÊ+ &€ö€0¤¤€€€‚ÿDiese Funktion liefert das vom Ein/Ausgabe-Port x gelesene Byte. Funktionell gleichwertig mit dem Assembler-Befehl IN.5"ÊýÊ' €€6°˜¤¤€‚ÿSiehe auch:z8ÈÊwËB T€r€pi�¦Á~‚iãB怉ƒ‚†"€ãwÎè뉂ÿOUTByte-Portausgabe Maschinennahe Anweisungen 6ýÊ­Ë1.<…I5ÿÿÿÿ­Ë–INPUT2wËßË* $€€V˜˜fäO€
‚ÿINPUTU0­Ë4Ì% €`€0¤¤€‚ÿINPUT [<prompt$>;] <variable>[,<variable>...]3ßËgÌ% €€0¤¤€‚ÿ("Eingabe")!ê4̈Î7 <€Õ€0¤¤€€€€€€‚‚‚ÿINPUT hält den Programmlauf an und erwartet eine Eingabe vom Benutzer. Die Zeichenkette <prompt$> wird vorher ausgegeben. Fehlt <prompt$>, wird ein Fragezeichen "?" ausgegeben.Bei Eingabe von Zahlen wird bei Eingabe von Buchstaben "?REDO FROM START" ausgegeben, eine Bitte zur Wiederholung der Eingabe.Bei unzureichend angegebenen Parametern (bei mehrfacher Variablen-Angabe) wird mit "??" nach weiteren Variablen verlangt. Die Parameter werden bei Eingabe durch Kommata getrennt.+g̳Ï' €	€0¤¤€‚‚ÿBei zuviel angegebenen Werten wird der Rest verworfen mit der Meldung "?EXTRA IGNORED". Meistens ist die Ursache, ein Komma statt Punkt bei gebrochenen Zahlen angegeben zu haben.Wird nichts angegeben (nur ENTER), werden alle Variablen unverändert belassen.5ˆÎ' €€6°˜¤¤€‚ÿSiehe auch:³ÏwËŠH³Ï–B T€’€pi�¦Á~‚iã«)Tဉƒ‚†"€ã11Õ‰‚ÿINPUT#Eingabeanforderung vom Peripheriegerät Ein- und Ausgabe 7Í1	'†ü6ÿÿÿÿÍŸINPUT#3	–* $€€V˜˜fäO€
‚ÿINPUT#L'ÍL% €N€0¤¤€‚ÿINPUT#<n> <variable>[,<variable>...]7ƒ% €$€0¤¤€‚ÿ("Eingabe Nr.")
ØL�2 2€±€0¤¤€€€ãþ}=‰‚ÿDie Eingabedaten werden vom Peripheriegerät <n> gelesen. n muß eine Zahl zwischen 1 und 3 sein (kein Ausdruck; Implementationsfehler). Dabei gelten dieselben Konventionen wie bei INPUT, nur ist hier kein Prompt erlaubt. Enthält der Eingabestrom ein BREAK-Zeichen (ASC(3)), erfolgt ein Programm-Abbruch. Beim Einlesen einer Textdatei in ein String-Array ist zu beachten, daß der Eingabetext kein Komma enthalten darf, was diese Funktion im allgemeinen unnütze macht.5ƒÂ' €€6°˜¤¤€‚ÿSiehe auch:ÝŠ�ŸS t€€pi�¦Á~‚iãþ}=€‰ƒ‚ã’†&‰ƒ‚ãøUr‰ƒ‚†"€ã0jL‰‚ÿINPUTEingabeanforderungOPEN#Eröffnen einer KanaloperationPRINT#Zeichenausgabe auf Peripheriegerät Arbeit mit Peripherie 8Â×1ZI7ÿÿÿÿ×ùINSTR()4
Ÿ* $€€V˜˜fäO€
‚ÿINSTR()O*×Z% €T€0¤¤€‚ÿ<position>=INSTR(<nadel$>,<heuhaufen$>)G"¡% €D€0¤¤€‚ÿ("in string"="in Zeichenkette")–XZ7> J€±€0¤¤€€€€€€€€€‚ÿDiese Funktion liefert den Index des ersten Vorkommens des Teil-Zeichenkette <nadel$> in der Gesamt-Zeichenkette <heuhaufen$>. Das erste Zeichen hat den Index 1. Ist <nadel$> nicht in <heuhaufen$> zu finden, liefert diese Funktion 0. Diese Funktion arbeitet case-sensitiv; d.h. Groß- und Kleinschreibung ist bei der Suche von Belang.5¡l' €€6°˜¤¤€‚ÿSiehe auch:�K7ùB T€˜€pi�¦Á~‚iã¼Õ€‰ƒ‚†"€ã%©ßʼn‚ÿMID$()Liefert Zeichenketten-Teilstück Zeichenketten-Manipulation 6l/1èü38ÿÿÿÿ/áINT()2ùa* $€€V˜˜fäO€
‚ÿINT()0/‘% €€0¤¤€‚ÿy=INT(x)>aÏ% €2€0¤¤€‚ÿ("integer"="Ganzzahl")f9‘5
- (€s€0¤¤€€€‚‚ÿDiese mathematische Funktion bildet den ganzzahligen Anteil von x, d.h. die Nachkommastellen werden abgeschnitten. Es erfolgt stets eine Abrundung, d.h. negative Zahlen werden dabei betragsmäßig größer!Eine Funktion, die nur die Nachkommastellen liefert, gibt es in HC-BASIC nicht; sie muß definiert werden.3Ïh
' €€6°˜¤¤€‚ÿBeispiel:¿l5
'S v€Ø€0ÈG‚O€€€���€€���€€�€€��€€���‚ÿ>?INT(.5) 0OK>?INT(-.5)-1OK>10 DEF FNFRAC(x)=x-INT(x)>RUNOK>?FNFRAC(PI) .141593OK>_5h
\' €€6°˜¤¤€‚ÿSiehe auch:…C'áB T€ˆ€pi�¦Á~‚iã™r-€‰ƒ‚†"€ãPn¦�‰‚ÿDEF FNDefinition einer Funktion Mathematische Funktionen 8\1€9ÿÿÿÿ@JOYST()4
áM* $€€V˜˜fäO€
‚ÿJOYST()2
% €€0¤¤€‚ÿy=JOYST(x)AMÀ% €8€0¤¤€‚ÿ("joystick"="Spielhebel")ë¶«
5 8€m€0¤¤€‚âL!‰‚âL!‰‚‚ÿSpielhebelabfrage, x=1 oder 2KC85: Korrekte Funktion nur mit Spielhebel-Modul und -Software.KC87: Der Rückgabewert ergibt sich aus der Summe der folgenden Summanden (Bits):[,À/ .€X€0¦¦O„±Ñ€ƒƒ‚ÿSpielhebel-KontaktTastatur-TasteSummand¼Z«
Âb ”€¼€0¦¦„±Ñ€ƒ†"€ƒ�ƒ†"€ƒ�ƒ†"€ƒ�ƒ†"€ƒ�ƒ€€ƒ‚ÿTaster links1Taster rechts2Taster oben4Taster unten8FeuerknopfESC16iC+& €†€0¤¤€‚‚ÿDie Bits lassen sich bequem mit dem AND-Operator herausfiltern.5Â`' €€6°˜¤¤€‚ÿSiehe auch:›Q+@J d€¤€pi�¦Á~‚i㻹€‰ƒ‚ã–†&‰ƒ‚†"€ã0jL‰‚ÿINPByte-PortlesenANDLogische UND-Verknüpfung Arbeit mit Peripherie `@á4`@@1­3ê�:ÿÿÿÿ@@±CKEYC@ƒ@0 0€&€V˜˜fäO€
âL!‰‚ÿKEY (nur KC85)C@@Æ@% €<€0¤¤€‚ÿKEY <funktionstastennummer><ƒ@A% €.€0¤¤€‚ÿ("Taste; Schlüssel")ëÆ@B, &€×€0¤¤€€€‚ÿDiese nur im Kommandomodus sinnvolle Funktion belegt die Funktionstasten 1..6 oder ihre Shift-Belegung (<funktionstastennummer>=7..12). Dazu wird die entsprechende CAOS-Menüroutine aufgerufen, die wiederum Tasteneingaben erwartet.8AQB' €"€6°˜¤¤€‚ÿVerfügbar auf:BB“B+ &€.€0¤¤âL!€‰‚ÿKC85 mit ROM-BASIC5QBÈB' €€6°˜¤¤€‚ÿSiehe auch:é“B±Cj ¢€€pi�¦Á~‚iãmr¡}€‰ƒ‚ãÚ‰ƒ‚†"€ëmr¡}KCCAOS.HLP‰ƒ‚†"€ã¶É×\‰‚ÿKEYLISTAuflistung der FunktionstastenbelegungEDITProgrammkorektur KEYLISTCAOS-Menükommando Editierkommandos 8ÈBéC1¿€ú‚;ÿÿÿÿéCpFKEYLISTG±C0D0 0€.€V˜˜fäO€
âL!‰‚ÿKEYLIST (nur KC85)/
éC_D% €€0¤¤€‚ÿKEYLIST70D–D% €$€0¤¤€‚ÿ("Tastenliste")uP_DE% € €0¤¤€‚ÿAuflistung der Funktionstastenbelegung. Macht dasselbe wie der CAOS-Menüpunkt8–DCE' €"€6°˜¤¤€‚ÿVerfügbar auf:BE…E+ &€.€0¤¤âL!€‰‚ÿKC85 mit ROM-BASIC5CEºE' €€6°˜¤¤€‚ÿSiehe auch:¶U…EpFa ’€®€pi�¦Á~‚iã³Æ€‰ƒ‚†"€ë³ÆKCCAOS.HLP‰ƒ‚†"€ã¶É×\‰‚ÿKEYBelegen einer Funktionstaste KEYCAOS-Menükommando Editierkommandos 8ºE¨F1­ê�R„<ÿÿÿÿ¨FILEFT$()4
pFÜF* $€€V˜˜fäO€
‚ÿLEFT$()B¨FG% €:€0¤¤€‚ÿy$=LEFT$(x$,<zeichenzahl>)1ÜFOG% €€0¤¤€‚ÿ("links")É‘GH8 >€#€0¤¤€€€€€€€‚ÿDiese Funktion liefert die ersten <zeichenzahl> Zeichen der Zeichenkette x$. Enthält x$ weniger Zeichen, wird x$ als Ergebnis geliefert.5OGMH' €€6°˜¤¤€‚ÿSiehe auch:Ð…HIK d€
€pi�¦Á~‚iã¼Õ€‰ƒ‚ã(ª‰ƒ‚†"€ã%©ßʼn‚ÿMID$()Liefert Zeichenketten-TeilstückRIGHT$()Liefert die letzten Zeichen einer Zeichenkette Zeichenketten-Manipulation 6MHSI1'ú‚B…=ÿÿÿÿSIDKLEN()2I…I* $€€V˜˜fäO€
‚ÿLEN()1SI¶I% €€0¤¤€‚ÿy=LEN(x$)1…IçI% €€0¤¤€‚ÿ("Länge")›v¶I‚J% €ì€0¤¤€‚ÿDiese Funktion liefert die Zeichenzahl des Strings x$. Das Ergebnis kann in HC-BASIC nur zwischen 0 und 255 liegen.5çI·J' €€6°˜¤¤€‚ÿSiehe auch:�K‚JDKB T€˜€pi�¦Á~‚iã¼Õ€‰ƒ‚†"€ã%©ßʼn‚ÿMID$()Liefert Zeichenketten-Teilstück Zeichenketten-Manipulation 7·J{K1”R„	>ÿÿÿÿ{K€LET, =3	DK®K* $€€V˜˜fäO€
‚ÿLET, =C{KñK% €<€0¤¤€‚ÿ[LET] <variable>=<ausdruck>1®K"L% €€0¤¤€‚ÿ("lasse")ÑñK"M/ ,€£€0¤¤€€€€‚ÿLET leitet eine Wertzuweisung ein. LET kann (und wird üblicherweise) auch weggelassen. Das Gleichheitszeichen fungiert hier nicht als Vergleich! Die Zielvariable muß bei der Zuweisung stets links stehen.3"LUM' €€6°˜¤¤€‚ÿBeispiel:Y"M®M: D€>€0ÈG‚O€€€��€€���‚ÿ>LET a=1OK>?a 1OK>_kEUMN& €Š€0¤¤€‚‚ÿEs ist durchaus möglich, mehrere "=" in einer Anweisung zu haben!Š?®M£NK f€~€0ÈG‚O€€€��€€���€€��€€���‚ÿ>a=1=1OK>?a-1OK>a="AFFE"="Affe"OK>?a 0OK>_}XN O% €°€0¤¤€‚ÿDas Ergebnis sind hierbei boolesche Ja/Nein-Aussagen, wobei "Ja"=-1 und "Nein"=0 ist.5£NUO' €€6°˜¤¤€‚ÿSiehe auch:ƒ; O€H `€x€pi�¦Á~‚iã–†&€‰ƒ‚†"€ã©Ø!Ô‰€€‚ÿ=Vergleichsoperator Programm-Steueranweisungen UO€DK5UOA€1ÝB…V	?ÿÿÿÿA€æ„LINER"€“€0 0€D€V˜˜fäO€
âL!‰‚ÿLINE (nur KC85 mit ROM-BASIC)F!A€Ù€% €B€0¤¤€‚ÿLINE <xa>,<ya>,<xe>,<ye>[,<g>]1“€
�% €€0¤¤€‚ÿ("Linie")§Ù€„^ Š€O€0¤¤€€€€€€€€€‚€€€€€€€€‚€€‚ÿZeichnet eine Linie von den Koordinaten <xa>,<ya> zu den Koordinaten <xe>,<ye> in der Grafikfarbe <g>. Wird <g> weggelassen, wird die zuletzt verwendete Grafikfarbe benutzt.Die Koordinaten x und y sind Pixelkoordinaten (unabhängig von der WINDOW-Einstellung); der Ursprung (0,0) liegt links unten. 0<=x<=319, 0<=y<=255.KC85/4 sowie KC85/3+CAOS 3.4: Überschreiten die Koordinaten den Bildbereich, wird die Linie nur im entsprechenden Ausschnitt dargestellt (geklippt). Dabei geht das Betriebssystem von positiven Zahlen aus. Die "Ausgabe" der unsichtbaren Punkte beansprucht jedoch ebenfalls Rechenzeit, sodaß das Clipping nur als Notvariante anzusehen ist.5
�D„' €€6°˜¤¤€‚ÿSiehe auch:¢P„æ„R t€¤€pi�¦Á~‚iã´7¾«€‰ƒ‚†"€ãOÜþº‰‚†"€ã4Ÿ&B‰‚ÿCIRCLEZeichnen eines Kreises Farbcodes für KC85 Grafik-Funktionen 6D„…1À	Ò	@ÿÿÿÿ…¦‡LINES2æ„N…* $€€V˜˜fäO€
‚ÿLINES:…ˆ…% €*€0¤¤€‚ÿLINES <zeilenzahl>2
N…º…% €€0¤¤€‚ÿ("Zeilen")4ˆ…î†2 2€€0¤¤€㪲"‰€€‚ÿLegt die Zeilenzahl für alle folgenden LIST-Befehle auf den Bildschirm fest. <zeilenzahl> darf auch 0 sein und führt dazu, daß das Listing auch ohne Kopierschutz nicht (am Bildschirm) einsehbar ist. Die Zeilenzahl ist beim BASIC-Start auf 10 gestellt.5º…#‡' €€6°˜¤¤€‚ÿSiehe auch:ƒA‡B T€„€pi�¦Á~‚i㪲"€‰ƒ‚†"€ã¶É×\‰‚ÿLISTAuflisten des Programmquelltextes Editierkommandos 5#‡Û‡1GV	À	AÿÿÿÿÛ‡íŠLIST1¦‡ˆ* $€€V˜˜fäO€
‚ÿLIST=Û‡Iˆ% €0€0¤¤€‚ÿLIST [<zeilennummer>]5ˆ~ˆ% € €0¤¤€‚ÿ("Auflisten")i*Iˆç‰? L€U€0¤¤€€€€€ãÜÓ‰‚€€‚ÿAuflisten des momentanen Programms ab <zeilennummer>. Wird <zeilennummer> nicht angegeben, dann ab erste Programmzeile. Die Ausgabe stoppt am Bildschirm nach 10 Zeilen, wenn nicht vorher mit LINES eine andere Zeilenzahl vereinbart wurde.LIST im Programm aufgerufen beendet das Programm.5~ˆŠ' €€6°˜¤¤€‚ÿSiehe auch:цç‰íŠK d€€pi�¦Á~‚iãÜÓ€‰ƒ‚ãêk‰ƒ‚†"€ã¶É×\‰‚ÿLINESFestlegen der Anzahl der bei LIST auszugebenden ZeilenWIDTHFestlegen der Länge einer Ausgabezeile Editierkommandos 6Š#‹1Ò	€	Bÿÿÿÿ#‹ÀLIST#2íŠU‹* $€€V˜˜fäO€
‚ÿLIST#=#‹’‹% €0€0¤¤€‚ÿLIST#<n>"<dateiname>"9U‹Ë‹% €(€0¤¤€‚ÿ("Auflisten Nr.")Û§’‹¦Ž4 6€O€0¤¤€‚€€€€‚‚ÿAusgeben des geladenen Programms auf wählbares Peripheriegerät. Der Dateiname muß angegeben werden, auch wenn das Peripheriegerät (z.B. der Drucker) ihn ignoriert.<n> ist die Kanalnummer: 1=Kassette, 2=Drucker (vorausgesetzt: Druckertreiber geladen und initialisiert), 3=benutzerdefinierbares Peripheriegerät. <n> muß literal sein (kein Ausdruck).Zur Zeitdehnung werden nach jedem Zeilenende 10 Dummyzeichen (CHR$(0)) eingefügt, um beim Wiedereinlesen von Kassette keine Synchronisationsprobleme zu haben. Die Anzahl dieser Zeichen kann mit NULL verändert werden, und mit NULL 0 ganz unterdrückt werden (beim Drucker oder selbstsynchronisierenden Systemen wie Diskette).5Ë‹ÛŽ' €€6°˜¤¤€‚ÿSiehe auch:1Þ¦ŽÀS t€¿€pi�¦Á~‚iãêÚ"€‰ƒ‚ãGu%‰ƒ‚ãêk‰ƒ‚†"€ã0jL‰‚ÿLOAD#Einlesen eines mit LIST# ausgegebenen ProgrammquelltextesNULLFestlegung der Anzahl der auszugebenden Dummyzeichen am Ende einer ZeileWIDTHFestlegen der Länge einer Ausgabezeile Arbeit mit PeÛŽÀíŠripherie BÛŽZÀ1yÀ	%�	CÿÿÿÿZÀŽÂLN(); Logarithmus1À‹À* $€€V˜˜fäO€
‚ÿLN()/
ZÀºÀ% €€0¤¤€‚ÿy=LN(x)[6‹ÀÁ% €l€0¤¤€‚ÿ("logarithmus naturalis"="natürlicher Logarithmus")›pºÀ°Á+ &€à€0¤¤€€€‚ÿDiese mathematische Funktion liefert den natürlichen Logarithmus des Arguments. x muß größer als Null sein.5ÁåÁ' €€6°˜¤¤€‚ÿSiehe auch:©_°ÁŽÂJ d€À€pi�¦Á~‚iã™r-€‰ƒ‚ã…ž‰ƒ‚†"€ãPn¦�‰‚ÿDEF FNDefinition einer FunktionEXP()Exponentialfunktion Mathematische Funktionen 6åÁÄÂ1�€	f„	DÿÿÿÿÄÂÇLOAD#2ŽÂöÂ* $€€V˜˜fäO€
‚ÿLOAD#=ÄÂ3Ã% €0€0¤¤€‚ÿLOAD#<n>"<dateiname>"5öÂhÃ% € €0¤¤€‚ÿ("Laden Nr.")‘]3ÃùÅ4 6€»€0¤¤€‚€€€€‚‚ÿEinlesen eines mit LIST# ausgegebenen Programms (in der Regel LOAD#1, Kassette).<n> ist die Kanalnummer: 1=Kassette, 2=Drucker (vorausgesetzt: Druckertreiber geladen und initialisiert), 3=benutzerdefinierbares Peripheriegerät. <n> muß literal sein (kein Ausdruck).LOAD# liest die Zeilen, als kämen sie von Tastatur, und sortiert die Zeilen passend ein bzw. überschreibt gleich numerierte. Das Einsortieren der Zeilen in den Speicher dauert etwas. Sollte dadurch das Kassettenlesen außer Tritt kommen, ist beim nächsten Mal Speichern mit der Anweisung NULL die Anzahl der Dummy-Zeichen zu erhöhen.5hÃ.Æ' €€6°˜¤¤€‚ÿSiehe auch:ð¥ùÅÇK d€M€pi�¦Á~‚iã�Ô€‰ƒ‚ãGu%‰ƒ‚†"€ã¶É×\‰‚ÿLIST#Ausgeben des Programmquelltextes auf PeripheriegerätNULLFestlegung der Anzahl der auszugebenden Dummyzeichen am Ende einer Zeile Editierkommandos 7.ÆUÇ1%�	†	EÿÿÿÿUÇ#ÊLOCATEFÇ›Ç0 0€,€V˜˜fäO€
âL!‰‚ÿLOCATE (nur KC85)?UÇÚÇ% €4€0¤¤€‚ÿLOCATE <zeile>,<spalte>9›ÇÈ% €(€0¤¤€‚ÿ("Ort bestimmen")'úÚÇ:É- (€õ€0¤¤€‚ãx쉂ÿPlaziert den Cursor im aktuellen Fenster. Die obere linke Fensterecke hat die Koordinaten 0,0. Die folgenden PRINT-Ausgaben beginnen an dieser Stelle (außer PRINT AT).Die Bildschirm-Cursorposition hat nichts mit dem Rückgabewert von POS zu tun!5ÈoÉ' €€6°˜¤¤€‚ÿSiehe auch:´j:É#ÊJ d€Ö€pi�¦Á~‚iã'#È­€‰ƒ‚ãeO¯‰ƒ‚†"€ã11Õ‰‚ÿCSRLIN()liefert Zeilennummer des CursorsPRINTZeichenausgabe auf Bildschirm Ein- und Ausgabe 7oÉZÊ1®f„	z‡	FÿÿÿÿZÊÑÌMID$()3	#Ê�Ê* $€€V˜˜fäO€
‚ÿMID$()L'ZÊÙÊ% €N€0¤¤€‚ÿy$=MID$(x$,<position>,<zeichenzahl>)5�ÊË% € €0¤¤€‚ÿ("mitten in")ð²ÙÊþË> J€e€0¤¤€€€€€€€€€‚ÿDiese Funktion liefert <zeichenzahl> Zeichen ab Position <position> (1-basiert) der Zeichenkette x$. Enthält x$ zu wenig Zeichen, wird der verbleibende Rest geliefert.5Ë3Ì' €€6°˜¤¤€‚ÿSiehe auch:ž\þËÑÌB T€º€pi�¦Á~‚iã(ª€‰ƒ‚†"€ã%©ßʼn‚ÿRIGHT$()Liefert die letzten Zeichen einer Zeichenkette Zeichenketten-Manipulation 43ÌÍ1=†	‚ˆ	GÿÿÿÿÍÏNEW0ÑÌ5Í* $€€V˜˜fäO€
‚ÿNEW+Í`Í% €€0¤¤€‚ÿNEW/
5Í�Í% €€0¤¤€‚ÿ("neu")�x`Í,Î% €ð€0¤¤€‚ÿLöscht den Programm- und Variablenspeicher. Keine Argumente. Mit CLEAR eingestellte Speichergrenzen bleiben erhalten.5�ÍaÎ' €€6°˜¤¤€‚ÿSiehe auch:­k,ÎÏB T€Ø€pi�¦Á~‚iãá½€‰ƒ‚†"€ã¶É×\‰‚ÿCLEARLöschen des Variablenspeichers; Begrenzung des String- und BASIC-Speichers Editierkommandos 5aÎCÏ1Cz‡	d
HÿÿÿÿCÏINULL1ÏtÏ* $€€V˜˜fäO€
‚ÿNULL3CϧÏ% €€0¤¤€‚ÿNULL <zahl>0tÏ×Ï% €€0¤¤€‚ÿ("Null")šu§Ï}% €ê€0¤¤€‚ÿLeg×Ï}Ït die Anzahl der auszugebenden Dummyzeichen am Ende einer Zeile fest, die bei LIST und LIST# ausgegeben werden.5×ϲ' €€6°˜¤¤€‚ÿSiehe auch:—U}IB T€¬€pi�¦Á~‚iã�Ô€‰ƒ‚†"€ã¶É×\‰‚ÿLIST#Ausgeben des Programmquelltextes auf Peripheriegerät Editierkommandos 3²|1‚ˆ	þ
Iÿÿÿÿ|JON/I«* $€
€V˜˜fäO€
‚ÿON“m|>& €Ú€0¤¤€�‚ÿON <ausdruck> GOTO <zeilennummer>, <zeilennummer>...ON <ausdruck> GOSUB <zeilennummer>, <zeilennummer>...3«q% €€0¤¤€‚ÿ("Je nach")®v>8 >€í€0¤¤€€€€€€€‚ÿMehrfachverzweigung zu verschiedenen Programmteilen bzw. Unterprogrammen. Gergibt der <ausdruck> 1, wird die erste angegebene Zeilennummer angesprungen, bei 2 die zweite usw. Ist <ausdruck> kleiner 1 oder größer als die Anzahl der Zeilennummern, wird mit dem nächsten Befehl fortgesetzt. Ergibt <ausdruck> eine gebrochene Zahl, wird der ganzzahlige Anteil genommen.5qT' €€6°˜¤¤€‚ÿSiehe auch:ö•Ja �€-€pi�¦Á~‚iãÈtÖ€‰ƒ‚ãG͉ƒ‚㿹‰ƒ‚ã
`.‰ƒ‚†"€ã©Ø!Ô‰€€‚ÿGOSUBUnterprogrammaufrufGOTOProgramm-SprungINT()Ganzzahliger TeilRETURNRückkehr aus Unterprogramm Programm-Steueranweisungen 6T€1úd
¢
Jÿÿÿÿ€DOPEN#2J²* $€€V˜˜fäO€
‚ÿOPEN#<€î& €,€0¤¤€�‚ÿOPENI#<n>OPENO#<n>2
² % €€0¤¤€‚ÿ("Öffnen")ûÉî2 2€“€0¤¤€€€€€‚ÿHiermit wird eine Kanaloperation (Daten-Ein/Ausgabe) eröffnet. OPENI# öffnet zur Eingabe; die Daten werden mit INPUT# gelesen. OPENO# öffnet für Ausgabe; die Daten werden mit PRINT# geschrieben.5 P' €€6°˜¤¤€‚ÿSiehe auch:ô¡DS t€E€pi�¦Á~‚iã	€‰ƒ‚ã«)Tቃ‚ãøUr‰ƒ‚†"€ã0jL‰‚ÿCLOSE#Schließen einer KanaloperationINPUT#Eingabeanforderung vom PeripheriegerätPRINT#Zeichenausgabe auf Peripheriegerät Arbeit mit Peripherie 4Px1Ìþ
M
KÿÿÿÿxOUT0D¨* $€€V˜˜fäO€
‚ÿOUTE xí% €@€0¤¤€‚ÿOUT <portadresse>,<datenbyte>=¨*	% €0€0¤¤€‚ÿ("output"="ausgeben")°íÚ	1 2€þ€0¤¤€€€€€‚ÿDiese Funktion führt den gleichnamigen Assemblerbefehl aus, welcher das Byte <datenbyte> auf die <portadresse> schreibt.3*	
' €€6°˜¤¤€‚ÿBeispiel:W,Ú	d
+ &€X€0¤¤€âL!‰‚ÿEinstellen des 20-Zeilen-Modus am KC87:R!
¶
1 2€B€0ÈG‚O€€€��‚ÿ>OUT 136,INP(136) OR 4OK>_Z.d
, (€\€0¤¤€‚âL!‰‚ÿEinschalten der Grafikmodus-LED am KC87:S"¶
c1 2€D€0ÈG‚O€€€��‚ÿ>OUT 136,INP(136) OR 64OK>_5˜' €€6°˜¤¤€‚ÿSiehe auch:x6cB T€n€pi�¦Á~‚i㻹€‰ƒ‚†"€ãwÎè뉂ÿINPByte-Portlesen Maschinennahe Anweisungen 6˜F1”¢
�
LÿÿÿÿF¤PAPER2x* $€€V˜˜fäO€
‚ÿPAPER8F°% €&€0¤¤€‚ÿPAPER <farbcode>2
xâ% €€0¤¤€‚ÿ("Papier")®‡°�
' €€0¤¤€‚‚ÿEinstellen der Hintergrundfarbe für die folgenden Zeichenausgabebefehle.Auch als Farbanweisung in der Ausgabe von PRINT verwendbar.5âÅ
' €€6°˜¤¤€‚ÿSiehe auch:ß„�
¤[ „€
€pi�¦Á~‚i㶹€‰ƒ‚ãeO¯‰ƒ‚†"€ãOÜþº‰‚†"€ã11Õ‰‚ÿINKEinstellen der VordergrundfarbePRINTZeichenausgabe auf Bildschirm Farbcodes auf KC87 und KC85 Ein- und Ausgabe 6Å
Ú1ÃM
Q€
MÿÿÿÿÚËAPAUSE2¤* $€€V˜˜fäO€
‚ÿPAUSEAÚM% €8€0¤¤€‚ÿPAUSE [<zehntelsekunden>]1~% €€0¤¤€‚ÿ("Pause")‚1MAQ p€g€0¤¤€€€€€€†"€€‚€€†"€‚ÿPause in der Programmabarbeitung. Das Computerpr~A¤ogramm hält die angegebenen Zehntelsekunden inne, bevor fortgesetzt wird. Bei Angabe von 0 oder Weglassen von <zehntelsekunden> wartet PAUSE auf die Betätigung der Taste CURSOR .PAUSE kann vorzeitig durch CURSOR  oder BREAK abgebrochen werden.5~AA' €€6°˜¤¤€‚ÿSiehe auch:ŠBAËAH `€†€pi�¦Á~‚iãr+€‰ƒ‚†"€ã©Ø!Ô‰€€‚ÿSTOPProgramm-Unterbrechung Programm-Steueranweisungen 7AAB1£�
ž�
NÿÿÿÿBnDPEEK()3	ËA5B* $€€V˜˜fäO€
‚ÿPEEK()1BfB% €€0¤¤€‚ÿy=PEEK(x)2
5B˜B% €€0¤¤€‚ÿ("spähen")°„fBHC, &€	€0¤¤€€€‚ÿDiese Funktion liest ein Byte von Adresse x. Die Adresse muß vorzeichenbehaftet angegeben werden; man beachte die 32-KB-Grenze.5˜B}C' €€6°˜¤¤€‚ÿSiehe auch:ñ˜HCnDY €€3€pi�¦Á~‚iãËÞ€‰ƒ‚ãå¶'‰ƒ‚ãõÃ剃âL!‰‚†"€ãwÎè뉂ÿDEEK()Integer-SpeicherlesenPOKEByte-SpeicherschreibenVPEEK()Byte-Speicherlesen aus IRM-Adresse (nur KC85) Maschinennahe Anweisungen 3}C¡D1ÛQ€
Ø‚
Oÿÿÿÿ¡DIGPI/nDÐD* $€
€V˜˜fäO€
‚ÿPI*¡DúD% €
€0¤¤€‚ÿPI(ÐD"E% €€0¤¤€‚ÿ˜súDºE% €æ€0¤¤€‚ÿDiese einzige Konstante hat den Wert 3.14159. Sie wird häufig für die Winkelumrechnung Grad<=>Bogenmaß benötigt.3"EíE' €€6°˜¤¤€‚ÿBeispiel:ͺEºFN l€þ€0ÈG‚O€€€�����€€��€€���€€���‚ÿ>LIST10 BB=180/PI20 DEF FNSI(x)=SIN(x/BB)30 DEF FNAN(x)=ATN(x)*BBOK>RUNOK>?FNSI(90) 1OK>?FNAN(1) 45OK>_5íEïF' €€6°˜¤¤€‚ÿSiehe auch:Z ºFIG: D€B€pi�¦Á~‚i€†"€ãPn¦�‰‚ÿ Mathematische Funktionen 5ïF~G1½ž�
A„
Pÿÿÿÿ~GJPOKE1IG¯G* $€€V˜˜fäO€
‚ÿPOKEB~GñG% €:€0¤¤€‚ÿPOKE <adresse>,<datenbyte>4¯G%H% €€0¤¤€‚ÿ("stochern")¹�ñGÞH, &€€0¤¤€€€‚ÿSchreibt ein Byte <datenbyte> auf angegebene Adresse. Die Adresse muß vorzeichenbehaftet angegeben werden; man beachte die 32-KB-Grenze.5%HI' €€6°˜¤¤€‚ÿSiehe auch:óšÞHJY €€7€pi�¦Á~‚iã(€‰ƒ‚ã¯m'‰ƒ‚ã+
扃âL!‰‚†"€ãwÎè뉂ÿDOKEInteger-SpeicherschreibenPEEK()Byte-SpeicherlesenVPOKEByte-Speicherschreiben auf IRM-Adresse (nur KC85) Maschinennahe Anweisungen 6I<J1ÞØ‚
Ù…
Qÿÿÿÿ<JäLPOS()2JnJ* $€€V˜˜fäO€
‚ÿPOS()0<JžJ% €€0¤¤€‚ÿy=POS(x)?nJÝJ% €4€0¤¤€‚ÿ("position"="Position")ïžJøK, &€ß€0¤¤€€€‚ÿDiese Funktion liefert den Wert eines internen Zeichenzählers, der bei PRINT-Anweisungen verwendet wird. x ist dabei eine Dummy-Variable. Sie liefert 0, wenn der Cursor am Zeilenanfang steht (nach PRINT ohne abschließendes Semikolon).5ÝJ-L' €€6°˜¤¤€‚ÿSiehe auch:·møKäLJ d€Ü€pi�¦Á~‚iãeO¯€‰ƒ‚ãêk‰ƒ‚†"€ã11Õ‰‚ÿPRINTZeichenausgabe auf BildschirmWIDTHFestlegen der Länge einer Ausgabezeile Ein- und Ausgabe 7-LM1éA„
RÿÿÿÿM€PRESETFäLaM0 0€,€V˜˜fäO€
âL!‰‚ÿPRESET (nur KC85)6M—M% €"€0¤¤€‚ÿPRESET <x>,<y>K&aMâM% €L€0¤¤€‚ÿ("pixel reset"="Bildpunkt löschen")Ô—MOK d€©€0¤¤€€€€€‚€€€€€€€€‚ÿLöscht Bildpunktes an den Koordinaten <x> und <y>.Die Koordinaten x und y sind Pixelkoordinaten (unabhängig von der WINDOW-Einstellung); der Ursprung (0,0) liegt links unten. 0<=x<=319, 0<=y<=255.5âM6O' €€6°˜¤¤€‚ÿSiehe auch:—NO€I b€ž€pi�¦Á~‚iãÖÒ'€‰ƒ‚ãOÜþº‰‚†"€ã4Ÿ&B‰‚ÿPSETSetzen eines BildpunktesFarbcodes für KC85 Grafik-Funktionen 6O€äL66OB€1Ù…
€SÿÿÿÿB€/ÀPRINT2€t€* $€€V˜˜fäO€
‚ÿPRINT¢zB€�(  €ô€0¤¤€���‚ÿPRINT [<positionierung>;][<farbanweisung>;]<ausgabeliste>PRINT? [<positionierung>;][<farbanweisung>;]<ausgabeliste>?2
t€H�% €€0¤¤€‚ÿ("drucke")Š9�Ò‚Q p€s€p‚¤~‚€ƒ��‚ƒ��‚ƒ��€€�€€�€€€€‚ÿ<positionierung>:AT(<zeile>;<spalte>)TAB(<spalte>)SPC(<leerzeichen)<farbanweisung>:INK <vfarbe>PAPER <hfarbe>COLOR <vfarbe>,<hfarbe><ausgabeliste>:<mathematischer_ausdruck><zeichenketten_ausdruck>; (Ausgabe dicht an dicht), (tabulierte Ausgabe in 13er Schritten)<positionierung> (außer AT)Ž/H�`…_ Œ€_€0¤¤€‚€€€€€€€€€€€€‚€€‚€€€€‚ÿPRINT gibt die Ausgabeliste auf dem Bildschirm aus. Dabei beachtet es die Positionierungs- und Trennzeichen-Angaben. PRINT allein bewirkt eine Zeilenschaltung. Statt PRINT kann auch ? eingegeben werden. Beide Schlüsselwörter kollabieren zu dem gleichen Token, welches (im Listing) zu PRINT (und nicht ?) expandiert wird.Farbanweisungen beeinflussen nur die momentane PRINT-Anweisung, nicht die nachfolgenden.Alle PRINT-Ausgaben gelangen in das aktuelle Fenster, mit Ausnahme von PRINT AT, welches immer mit dem Maximalfenster arbeitet.�QÒ‚ð†? L€£€0¤¤€€€€€‚€€€€‚ÿWird an das Ende der <ausgabeliste> ein Semikolon (oder Komma) angefügt, macht PRINT keine Zeilenschaltung, und die Zeile wird intern immer länger. (Nicht zu verwechseln mit den Zeilenumbrüchen, die das Betriebssystem am Fensterrand macht!)PRINT beachtet die WIDTH-Angabe und bringt ggf. selbständig eine Zeilenschaltung ein.6`…&‡' €€6°˜¤¤€‚ÿDifferenzen:|Hð†¢‡4 8€�€0¤¤€€æL!‰æL!‰‚ÿPRINT AT hat auf KC85 und KC87 im Detail verschiedene Wirkungen.0Ö&‡ÒŠZ ‚€­€pi�¦Á~‚iâL!€‰ƒ€€‚âL!‰ƒ€€€€�€€€€‚ÿKC85:Die Ausgabe erfolgt über das Betriebssystem. Ein eingeschalteter Druckertreiber in Protokollfunktion listet auch diese Zeichen mit aus. Be Ausgabe in die untere rechte Ecke wird ein (unbeabsichtigter) Bildlauf ausgelöst; dieser muß durch vorherige Ausgabe von CHR$(17) unterdrückt werden. Steuerzeichen bei PRINT AT werden vom Betriebssystem aufgelöst.KC87:Die Ausgabe erfolgt unter Umgehung des Betriebssystems. Die Ausgabe mit PRINT AT erfolgt wesentlich schneller als mit PRINT. Steuerzeichen werden auf dem Bildschirm "ausgegeben" und erzeugen mit dem Original-Zeichengenerator ein weißes (vordergrundfarbiges) Quadrat.Die <farbanweisung> muß im Gegensatz zum obigen Syntaxdiagramm vor AT stehen.3¢‡‹' €€6°˜¤¤€‚ÿBeispiel:tOÒŠy‹% €ž€0¤¤€‚ÿAusgabe von "Ende" schwarz auf grau in der Mitte der vorletzten Zeile (KC85)W&‹Ћ1 2€L€0ÈG‚O€€€��‚ÿ>?AT(30,20);COLOR0,7;"ENDE"OK>_|Vy‹LŒ& €¬€0¤¤€‚‚ÿAusgabe einer Sinus- und Kosinus-Tabelle (hätte man auch mit Kommata lösen können)˅Ћ�F Z€€0ÈG‚O€€€�€€�€€�€€�‚ÿ>10 ?"X";TAB(13);"SIN(X)";TAB26;"COS(X)">20 FOR I=0 TO 7 STEP PI/10>30 PRINT I;TAB(13);SIN(I);TAB(26);COS(I)>40 NEXT>_5LŒL�' €€6°˜¤¤€‚ÿSiehe auch:#¢�o�� ЀE€pi�¦Á~‚iãªq€‰ƒ‚㎉ƒ‚ブ‰ƒ‚ã'#È­‰ƒ‚㶹‰ƒ‚ãþ}=‰ƒ‚ã¶�Áû‰ƒâL!‰‚ã¬àš‰ƒ‚ãx쉃‚ãêk‰ƒ‚ÿBEEPErzeugung eines SignaltonesCLSBildschirm löschenCOLOREinstellen der Vorder- und HintergrundfarbeCSRLIN()liefert Zeilennummer des CursorsINKEinstellen der VordergrundfarbeINPUTEingabeanforderungLOCATEPlazieren des Cursors im aktuellen Fenster (nur KC85)PAPEREinstellen der HintergrundfarbePOS()Position in Ausgabezeile ermittelnWIDTHFestlegen der Länge einer Ausgabezeile´bL�/ÀR t€È€pi�¦Á~‚iãÐÏøZ€‰ƒ‚†"€ã11Õ‰‚†"€ãOÜþº‰‚ÿWINDOWFestlegen eines Ausgabe-Fensters Ein- und Ausgabeo�/À€  Farbcodes auf KC87 und KC857o�fÀ1õ��TÿÿÿÿfÀ$ÃPRINT#3	/À™À* $€€V˜˜fäO€
‚ÿPRINT#h@fÀÁ(  €€€0¤¤€���‚ÿPRINT#<n> <ausgabeliste>PRINT#<n>?#<n> <ausgabeliste>?#<n>6™À7Á% €"€0¤¤€‚ÿ("drucke Nr.")™hÁÐÁ1 2€Ð€0¤¤€€€ãeO¯‰‚ÿDie Zeichenausgabe erfolgt hierbei auf ein wählbares Peripheriegerät. <ausgabeliste> siehe PRINT.57ÁÂ' €€6°˜¤¤€‚ÿSiehe auch:ÌÐÁ$ÃS t€›€pi�¦Á~‚iã«)Tဉƒ‚ãGu%‰ƒ‚ãêk‰ƒ‚†"€ã0jL‰‚ÿINPUT#Eingabeanforderung vom PeripheriegerätNULLFestlegung der Anzahl der auszugebenden Dummyzeichen am Ende einer ZeileWIDTHFestlegen der Länge einer Ausgabezeile Arbeit mit Peripherie 5ÂYÃ1„€¢ƒUÿÿÿÿYèÆPSETD$Ã�Ã0 0€(€V˜˜fäO€
âL!‰‚ÿPSET (nur KC85):YÃ×Ã% €*€0¤¤€‚ÿPSET <x>,<y>[,<g>]H#�ÃÄ% €F€0¤¤€‚ÿ("pixel set"="Bildpunkt setzen")„3×ãÅQ p€g€0¤¤€€€€€€€‚€€€€€€€€‚ÿZeichnet einen Punkt auf die Koordinaten <x>,<y> in der Grafikfarbe <g>. Wird <g> weggelassen, wird die zuletzt verwendete Grafikfarbe benutzt.Die Koordinaten x und y sind Pixelkoordinaten (unabhängig von der WINDOW-Einstellung); der Ursprung (0,0) liegt links unten. 0<=x<=319, 0<=y<=255.5ÄØÅ' €€6°˜¤¤€‚ÿSiehe auch:Ðv£Å¨ÆZ „€ð€pi�¦Á~‚iãg�m€‰ƒ‚ã~ ±‰ƒ‚†"€ãOÜþº‰‚†"€ã4Ÿ&B‰‚ÿPRESETLöschen eines BildpunktesPTEST()Testet, ob Pixel gesetzt Farbcodes für KC85 Grafik-Funktionen 8ØÅàÆ1S��¥…VÿÿÿÿàÆûÉPTEST()G¨Æ'Ç0 0€.€V˜˜fäO€
âL!‰‚ÿPTEST() (nur KC85)2
àÆYÇ% €€0¤¤€‚ÿy=PTEST(x)G"'Ç Ç% €D€0¤¤€‚ÿ("pixel test"="Bildpunkt-Test")€RYÇ É. *€¥€0¤¤€€€‚‚‚ÿDiese Funktion testet, ob bei einer bestimmten Position die Vordergrundfarbe gesetzt ist. x ist die x-Koordinate, als y-Koordinate benutzt der Computer die der letzten Grafikanweisung.Diese Funktion liefert 1 bei gesetztem Pixel und 0 bei gelöschtem Pixel.Auf KC85/4 im hochauflösenden Grafikmodus ist das Ergebnis nicht definiert.5 ÇUÉ' €€6°˜¤¤€‚ÿSiehe auch:¦\ ÉûÉJ d€º€pi�¦Á~‚iãg�m€‰ƒ‚ãÖÒ'‰ƒ‚†"€ã4Ÿ&B‰‚ÿPRESETLöschen eines BildpunktesPSETSetzen eines Bildpunktes Grafik-Funktionen :	UÉ5Ê1¿¢ƒ÷†Wÿÿÿÿ5ʺÌRANDOMIZEIûÉ~Ê0 0€2€V˜˜fäO€
âL!‰‚ÿRANDOMIZE (nur KC85)15ʯÊ% €€0¤¤€‚ÿRANDOMIZE:~ÊéÊ% €*€0¤¤€‚ÿ("mache zufällig")ฯÊÉË( €q€0¤¤€‚‚‚ÿPseudozufallsgenerator mit zufälligem Wert starten. Hierzu wird das Refreshregister in das Pseudozufalls-Schieberegister eingeschrieben.Beim KC87 kann man sich wie folgt behelfen:>éÊÌ) "€*€0ÈG‚O€‚ÿZ=RND(-PEEK(31)-1)5ÉË<Ì' €€6°˜¤¤€‚ÿSiehe auch:~<̺ÌB T€z€pi�¦Á~‚iã°ú€‰ƒ‚†"€ãPn¦�‰‚ÿRND()liefert Zufallszahl Mathematische Funktionen 5<ÌïÌ1𥅟ˆXÿÿÿÿï̪ÏREAD1ºÌ Í* $€€V˜˜fäO€
‚ÿREADCïÌcÍ% €<€0¤¤€‚ÿREAD <variable>[,variable>]1 Í”Í% €€0¤¤€‚ÿ("lesen"):cÍÎÎ/ ,€€0¤¤€€€€‚ÿREAD liest aus DATA-Zeilen Konstanten und weist sie den angegebenen Variablen zu. Dabei rückt der DATA-Zeiger immer auf das nächste DATA-Element. <variable> kann eine numerische oder Stringvariable sein. Die Passung der Datentypen muß zur Laufzeit gegeben sein.5”ÍÏ' €€6°˜¤¤€‚ÿSiehe auch:§]ÎΪÏJ d€¼€pi�¦Á~‚iãbÄ€‰ƒ‚ãÚ¼ìɉƒ‚†"€ã11Õ‰‚ÿDATADatenliste definierenRESTOREDATA-Zeiger setzen/rücksetzen Ein- und Ausgabe 4ÏÞÏ1 ÷†NYÿÿÿÿÞÏVREM0ªÏ* $€€V˜˜fäÞϪÏO€
‚ÿREMF ÞÏ`& €@€0¤¤€�‚ÿREM <kommentar>! <kommentar>>ž% €2€0¤¤€‚ÿ("remark"="Bemerkung")â`½= H€Å€0¤¤€€€€ãeO¯‰‚‚€€‚ÿREM dient zur Kennzeichnung von Kommentar. Der Kommentar erstreckt sich nach dem Schlüsselwort bis zum Zeilenende. Alternativ kann auch ! geschrieben werden. Im Gegensatz zu PRINT kollabieren diese beiden Schlüsselworte nicht zum gleichen Token, wodurch beide erhalten bleiben.Während der BASIC-Eingabezeileneditor alles außer Stringkonstanten in Großbuchstaben umwandelt, bleibt Kommentar in der eingegebenen Form bestehen.REM ist nur innerhalb von Programmen sinnvoll.5žò' €€6°˜¤¤€‚ÿSiehe auch:d$½V@ P€J€pi�¦Á~‚i€†"€ã©Ø!Ô‰€€‚ÿ Programm-Steueranweisungen 9ò�1òŸˆgZÿÿÿÿ�H	RENUMBER5VÄ* $€€V˜˜fäO€
‚ÿRENUMBERQ,�% €X€0¤¤€‚ÿRENUMBER <von>,<bis>,<neu>,<schrittweite>:ÄO% €*€0¤¤€‚ÿ("Neunumerierung")xIÇ/ ,€“€0¤¤€€€€‚ÿRENUMBER dient zur Neunumerierung von Programmzeilen. Dabei werden die Programmzeilen <von> bis einschließlich <bis> mit der Anfangs-Zeilennummer <neu> in der Schrittweite <schrittweite> umnumeriert. RENUMBER geht dabei sämtliche Programmzeilen durch und modifiziert dabei alle Referenzen mit THEN, GOTO, GOSUB und RESTORE.9O' €$€6°˜¤¤€‚ÿBitte beachten:'ìÇ'; D€Ù€t˜‘€¦„�i€ƒ�‚ƒ€€��‚ƒ‚ÿ*Parameter können von rechts nach links weggelassen weden, dann gilt:<schrittweite>=10, <neu>=<von>, <bis>=letzte Zeile, <von>=1. Zeile.*Umsortierung ist mit RENUMBER nicht möglich (und auch mit keinem anderen Kommando; das gelingt nur mit LIST#1, externer Texteditor und LOAD#1 oderLIST#1, geschicktes Umnumerieren, LOAD#1.*Parameter gut auswählen, da gleiche Zeilennummern oder verkehrte Reihenfolge den Editor durcheinanderbringt und das BASIC-Programm nicht mehr nutzbar ist.zG¡3 6€Ž€t˜‘€¦„�i€ƒ€€‚ÿ*Generell sollte vor jedem RENUMBER mir CSAVE gespeichert werden.5'Ö' €€6°˜¤¤€‚ÿSiehe auch:r0¡H	B T€b€pi�¦Á~‚iãÚ€‰ƒ‚†"€ã¶É×\‰‚ÿEDITProgrammkorektur Editierkommandos 8Ö€	1|N [ÿÿÿÿ€	ÄRESTORE4
H	´	* $€€V˜˜fäO€
‚ÿRESTORE@€	ô	% €6€0¤¤€‚ÿRESTORE [<zeilennummer>]<´	0
% €.€0¤¤€‚ÿ("wiederherstellen")³Œô	ã
' €€0¤¤€‚‚ÿHiermit wird der DATA-Zeiger auf die angegebene oder die erste DATA-Zeile gesetzt.Folgende READ-Anweisungen lesen ab dieser Zeile Daten.50
' €€6°˜¤¤€‚ÿSiehe auch:¬bã
ÄJ d€Æ€pi�¦Á~‚iãbÄ€‰ƒ‚ã"Ú)‰ƒ‚†"€ã11Õ‰‚ÿDATADatenliste definierenREADLesen von Werten aus DATA-Anweisungen Ein- und Ausgabe 7û1g�\ÿÿÿÿûã
RETURN3	Ä.* $€€V˜˜fäO€
‚ÿRETURN.	û\% €€0¤¤€‚ÿRETURN4.�% €€0¤¤€‚ÿ("Rückkehr")–q\&
% €â€0¤¤€‚ÿDas mit GOSUB gerufene Unterprogramm wird beendet und hinter der nach GOSUB stehenden Anweisung fortgefahren. 5�[
' €€6°˜¤¤€‚ÿSiehe auch:ˆ@&
ã
H `€‚€pi�¦Á~‚iãÈtÖ€‰ƒ‚†"€ã©Ø!Ô‰€€‚ÿGOSUBUnterprogrammaufruf Programm-Steueranweisungen 9[
1ì €]ÿÿÿÿ¥@RIGHT$()5ã
Q* $€€V˜˜fäO€
‚ÿRIGHT$()C”% €<€0¤¤€‚ÿy$=RIGHT$(x$,<zeichenzahl>)2
QÆ% €€0¤¤€‚ÿ("rechts")Ò””˜> J€)€0¤¤€€€€€€€€€‚ÿDiese Funktion liefert die letzten <zeichenzahl> Zeichen der Zeichenkette x$. Enthält x$ weniger Zeichen, wird x$ als Ergebnis geliefert.5ÆÍ' €€6°˜¤¤€‚ÿSiehe auch:Ì�˜¥@K d€€pi�¦Á~‚iã—“"€‰ƒ‚ãÍ¥@ã
¼Õ‰ƒ‚†"€ã%©ßʼn‚ÿLEFT$()Liefert die ersten Zeichen aus ZeichenketteMID$()Liefert Zeichenketten-Teilstück Zeichenketten-Manipulation 6ÍÛ@1��ê�^ÿÿÿÿÛ@2DRND()2¥@
A* $€€V˜˜fäO€
‚ÿRND()0Û@=A% €€0¤¤€‚ÿy=RND(x)=
AzA% €0€0¤¤€‚ÿ("random"="zufällig")°}=A*B3 6€ú€0¤¤€‚€€€€‚‚ÿDiese Funktion liedert eine Pseudozufallszahl im Bereich 0<=y<1.Der Parameter x entscheidet, wie RND genau arbeitet:2ÚzA\CX ~€µ€pi�¦Á~‚i€€ƒ€€‚€€ƒ€€‚€€ƒ€€€€‚ÿx>0nächste Zahl aus der Zufallszahlenfolge, auch abhängig vom Wert von xx=0RND liefert die zuletzt gelieferte Zahl noch einmalx<0wie x>0, jedoch beginnt danach eine neue Folge in Abhängigkeit von x5*B‘C' €€6°˜¤¤€‚ÿSiehe auch:¡Y\C2DH `€´€pi�¦Á~‚iãi9"`€‰ƒâL!‰‚†"€ãPn¦�‰‚ÿRANDOMIZEZufallsgenerator initialisieren (nur KC85) Mathematische Funktionen 4‘CfD1€Â_ÿÿÿÿfDFFRUN02D–D* $€€V˜˜fäO€
‚ÿRUN<fDÒD% €.€0¤¤€‚ÿRUN [<zeilennummer>]1–DE% €€0¤¤€‚ÿ("laufe")�rÒD E+ &€ä€0¤¤€€€‚ÿLöscht alle Variablen und beginnt ab <zeilennummer> bzw. ab erster Programmzeile mit der Programmabarbeitung.5EÕE' €€6°˜¤¤€‚ÿSiehe auch:q/ EFFB T€`€pi�¦Á~‚iãGÍ€‰ƒ‚†"€ã¶É×\‰‚ÿGOTOProgramm-Sprung Editierkommandos 6ÕE|F1Íê�Ƀ`ÿÿÿÿ|FISGN()2FF®F* $€€V˜˜fäO€
‚ÿSGN()0|FÞF% €€0¤¤€‚ÿy=SGN(x)?®FG% €4€0¤¤€‚ÿ("signum"="Vorzeichen")~RÞF›G, (€¤€0¤¤€€€‚‚ÿDiese mathematische Funktion zieht das Vorzeichen aus x heraus.Mathematisch:KGæG0 0€6€pi�¦Á~‚i€ƒ‚ƒ‚ƒ‚ÿx>0y=1x=0y=0x<0y=-13›GH' €€6°˜¤¤€‚ÿBeispiel:JæGcH2 4€0€0ÈG‚O€€€���‚ÿ>?SGN(-42)-1OK>_5H˜H' €€6°˜¤¤€‚ÿSiehe auch:{9cHIB T€t€pi�¦Á~‚iãò}€‰ƒ‚†"€ãPn¦�‰‚ÿABS()absoluter Betrag Mathematische Funktionen 6˜HII1³ÂÒ„aÿÿÿÿIIÆKSIN()2I{I* $€€V˜˜fäO€
‚ÿSIN()0II«I% €€0¤¤€‚ÿy=SIN(x)({IÓI% €€0¤¤€‚ÿÎ�«I¡J? L€€0¤¤€€€€€‚€€€€‚ÿDiese mathematische Funktion liefert den Sinus des Winkels x, welcher im Bogenmaß anzugeben ist.Mathematische Entsprechung: y=sin x3ÓIÔJ' €€6°˜¤¤€‚ÿBeispiel:K¡JK2 4€2€0ÈG‚O€€€���‚ÿ>?SIN(PI/2) 1OK>_5ÔJTK' €€6°˜¤¤€‚ÿSiehe auch:r0KÆKB T€b€pi�¦Á~‚iã“Ž€‰ƒ‚†"€ãPn¦�‰‚ÿCOS()Kosinus Mathematische Funktionen 6TKüK1�
ɃÞ
bÿÿÿÿüKè…SOUNDEÆKAL0 0€*€V˜˜fäO€
âL!‰‚ÿSOUND (nur KC85)V1üK—L% €b€0¤¤€‚ÿSOUND <z1>,<v1>,<z2>,<v2>[,<lautst>[,<dauer>]]1ALÈL% €€0¤¤€‚ÿ("Klang")ñË—L¹M& €—€0¤¤€‚ÿDieses Kommando ermöglicht stereofone Tonausgaben mit einstellbarer Lautstärke und Tondauer. Insbesondere arbeitet diese Tonausgabe im Hintergrund, der KC könnte also nebenher noch rechnen. Dabei ist:�)ÈL:OX ~€S€pi�¦Á~‚i€€ƒ‚€€ƒ‚€€ƒ‚€€ƒ‚€€ƒ‚€€ƒ‚ÿ<z1>Hauptteiler CTC linker Kanal, 0=kein Ton links<v1>Vorteiler CTC linker Kanal<z2>Hauptteiler CTC rechter Kanal, 0=kein Ton rechts<v2>Vorteiler CTC rechter Kanal<lautst>Lautstärke (für beide Kanäle gemeinsam, nur für Fernseher-Ausgang wirksam)<dauer>Tondauer, 0=DauertonpH¹M¶€( €‘€0¤¤€‚‚‚ÿDie Tonausgabe ist am KC85 ein Kompromiß: an der Diodenbuchse hat man Stereo, aber keine Lautstärkestellung; am Fernseher-Ausgang sind linker und rechter Ka:O¶€ÆKnal gemischt, jedoch in der Lautstärke beeinflußbar.Der Lautstärke-Steller ist auch als primitiver 4-bit-D/A-Umsetzer einsetzbar (nur sinnvoll in Maschinenprogrammen).H!:Oþ€' €B€6°˜¤¤€‚ÿBerechnungsvorschrift für <z>:¯w¶€­�8 @€î€0¤¤€€€‚€€€€‚ÿBasis=2^(1/12) (Berechnungsgrundlage: Zwölftonmusik)Frequenz=Basis^HalbtonNr *440 (Kammerton a habe Nummer 0))Êþ€Ö‚_ Œ€•€p‘€¦:‚�€ƒ€€€€€€‚ƒ€€€€‚ƒ€€€€€€‚ÿ1.Vorteiler=16, Hauptteiler=INT(55312.5/Frequenz+.5) (<v>=0)2.Quelle=Zeilenfrequenz, Hauptteiler=INT(7812.5/Frequenz+.5)3.Vorteiler=256, Hauptteiler=INT(3457/Frequenz+.5) (<v>=1)[-­�1…. *€[€0¤¤€‚‚€€‚ÿDiese Formeln ergeben sich aus 1.77 MHz Taktfrequenz, den Vorteilern 16 und 256 für die Taktfrequenz, der Fernsehzeilenfrequenz sowie dem Fakt, daß am Ausgang der beiden CTC-Kanäle je ein Taktteiler-Flip-Flop angeschlossen ist, um die Ausgangs-Nadelimpulse in Rechteck umzuwandeln.Die Variante 2 ist undokumentiert; die Frequenz kann nur mit Portbefehlen gesetzt werden.In CAOS NT sind diese Umrechnungen per Tabelle im System integriert; zusätzliche Werte für <v> sind: 2 = benutze Zeilenfrequenz, 3 = <z> ist Halbton-Nummer mit 0 = tiefste Frequenz5Ö‚f…' €€6°˜¤¤€‚ÿSiehe auch:‚@1…è…B T€‚€pi�¦Á~‚iãªq€‰ƒ‚†"€ã0jL‰‚ÿBEEPErzeugung eines Signaltones Arbeit mit Peripherie 5f…†1Ò„M
cÿÿÿÿ†íˆSTOP1è…N†* $€€V˜˜fäO€
‚ÿSTOP,†z†% €€0¤¤€‚ÿSTOP4N†®†% €€0¤¤€‚ÿ("Anhalten")Q,z†ÿ†% €X€0¤¤€‚ÿUnterbrechen des Programms und AusschriftC®†B‡) "€4€0ÈG‚O€‚ÿBREAK IN <zeilennummer>—qÿ†Ù‡& €â€0¤¤€‚‚ÿZu Debuggingzwecken können hier Variablen eingesehen und verändert werden, bevor mit CONT weitergemacht wird.5B‡ˆ' €€6°˜¤¤€‚ÿSiehe auch:ߌهíˆS t€€pi�¦Á~‚iãþñ€‰ƒ‚㑧,‰ƒ‚㑧,‰ƒ‚†"€ã¶É×\‰‚ÿCONTFortsetzen nach BREAKTROFFAusschalten des TRACE-KontrollmodusTRONEinschalten des TRACE-Kontrollmodus Editierkommandos 7ˆ$‰1:Þ
I
dÿÿÿÿ$‰'‹STR$()3	íˆW‰* $€€V˜˜fäO€
‚ÿSTR$()2
$‰‰‰% €€0¤¤€‚ÿy$=STR$(x)H#W‰щ% €F€0¤¤€‚ÿ("to string"="zur Zeichenkette")“h‰‰dŠ+ &€Ð€0¤¤€ãeO¯‰‚ÿDiese Funktion wandelt eine Zahl in einen String um und wendet dabei dieselben Regeln wie PRINT an.5щ™Š' €€6°˜¤¤€‚ÿSiehe auch:ŽLdŠ'‹B T€š€pi�¦Á~‚iãm€‰ƒ‚†"€ã%©ßʼn‚ÿVAL()Zeichenkette in Zahl konvertieren Zeichenketten-Manipulation :	™Ša‹1‘M
˜
eÿÿÿÿa‹¸�STRING$()6'‹—‹* $€€V˜˜fäO€
‚ÿSTRING$()G"a‹Þ‹% €D€0¤¤€‚ÿy$=STRING$(<wiederholungen>,x$)8—‹Œ% €&€0¤¤€‚ÿ("Zeichenkette")à´Þ‹öŒ, &€i€0¤¤€€€‚ÿDiese Funktion repetiert die Zeichenkette x$ <wiederholungen> mal. Beachte, daß die Ergebnis-Zeichenkette nie länger als 255 Zeichen lang werden kann! Ggf. wird abgeschnitten.5Œ+�' €€6°˜¤¤€‚ÿSiehe auch:�KöŒ¸�B T€˜€pi�¦Á~‚iã¼Õ€‰ƒ‚†"€ã%©ßʼn‚ÿMID$()Liefert Zeichenketten-Teilstück Zeichenketten-Manipulation 7+�ï�1×I
C€
fÿÿÿÿï�¦ÀSWITCHF¸�5Ž0 0€,€V˜˜fäO€
âL!‰‚ÿSWITCH (nur KC85)2
ï�gŽ% €€0¤¤€‚ÿSWITCH m,k45Ž›Ž% €€0¤¤€‚ÿ("schalten")îgŽ±�( €Ý€0¤¤€‚‚‚ÿSchalten von Modulen und Speicher sowie Setzen und Löschen des Schreibschutzes auf RAM.Genaueres siehe CAOS-Dokumentation.Im Gegensatz zum Menükommando ist die Abfrage des Schaltzustandes oder des Strukturbytes hiermit nicht möglich.5›ŽÀ' €€6°˜¤¤€‚ÿSiehe auch:±�À¸�šA±�¦ÀY ‚€†€pi�¦Á~‚i€†"€ë0×À:KCCAOS.HLP‰ƒ‚†"€ãwÎè뉂ÿ %SWITCHCAOS-Systemkommando Maschinennahe Anweisungen 6ÀÜÀ1è˜
ö€
gÿÿÿÿÜÀŽÂSQR()2¦ÀÁ* $€€V˜˜fäO€
‚ÿSQR()0ÜÀ>Á% €€0¤¤€‚ÿy=SQR(x)F!Á„Á% €B€0¤¤€‚ÿ("sqare root"="Quadratwurzel"){P>ÁÿÁ+ &€ €0¤¤€€€‚ÿDiese Funktion liefert die Wurzel des Arguments. x darf nicht negativ sein.5„Á4Â' €€6°˜¤¤€‚ÿSiehe auch:Z ÿÁŽÂ: D€B€pi�¦Á~‚i€†"€ãPn¦�‰‚ÿ Mathematische Funktionen 64ÂÄÂ1ÁC€

‚
hÿÿÿÿÄÂOÅTAN()2ŽÂöÂ* $€€V˜˜fäO€
‚ÿTAN()0ÄÂ&Ã% €€0¤¤€‚ÿy=TAN(x)(öÂNÃ% €€0¤¤€‚ÿБ&ÃÄ? L€#€0¤¤€€€€€‚€€€€‚ÿDiese mathematische Funktion liefert den Tangens des Winkels x, welcher im Bogenmaß anzugeben ist.Mathematische Entsprechung: y=tan x3NÃQÄ' €€6°˜¤¤€‚ÿBeispiel:R Ä£Ä2 4€@€0ÈG‚O€€€���‚ÿ>?TAN(PI/2)?/0 ERROROK>_5QÄØÄ' €€6°˜¤¤€‚ÿSiehe auch:w5£ÄOÅB T€l€pi�¦Á~‚iã󀀉ƒ‚†"€ãPn¦�‰‚ÿATN()Arcustangens Mathematische Funktionen 6ØÄ…Å1Õö€
«‚
iÿÿÿÿ…Å$ÇTROFF2OÅ·Å* $€€V˜˜fäO€
‚ÿTROFF-…ÅäÅ% €€0¤¤€‚ÿTROFF@·Å$Æ% €6€0¤¤€‚ÿ("trace off"="Spur aus")F!äÅjÆ% €B€0¤¤€‚ÿAusschalten des Kontrollmodus.5$ÆŸÆ' €€6°˜¤¤€‚ÿSiehe auch:…CjÆ$ÇB T€ˆ€pi�¦Á~‚i㑧,€‰ƒ‚†"€ã¶É×\‰‚ÿTRONEinschalten des TRACE-Kontrollmodus Editierkommandos 5ŸÆYÇ1¯
‚
#„
jÿÿÿÿYÇÓÉTRON1$ÇŠÇ* $€€V˜˜fäO€
‚ÿTRON,YǶÇ% €€0¤¤€‚ÿTRON?ŠÇõÇ% €4€0¤¤€‚ÿ("trace on"="Spur ein")#ý¶ÇÉ& €û€0¤¤€‚ÿEinschalten des Kontrollmodus. Die Abarbeitung jeder Zeile wird auf dem Bildschirm protokolliert, indem <<zeilennummer>> ausgegeben wird (in je einem Paar spitzer Klammern). Auf diese Weise "sieht" man, auf welchem Weg das Programm abgearbeitet wird.5õÇMÉ' €€6°˜¤¤€‚ÿSiehe auch:†DÉÓÉB T€Š€pi�¦Á~‚iã$€€‰ƒ‚†"€ã¶É×\‰‚ÿTROFFAusschalten des TRACE-Kontrollmodus Editierkommandos 6MÉ	Ê10«‚
e‡
kÿÿÿÿ	ÊÏUSR()2ÓÉ;Ê* $€€V˜˜fäO€
‚ÿUSR()0	ÊkÊ% €€0¤¤€‚ÿy=USR(x);;ʦÊ% €,€0¤¤€‚ÿ("user"="Benutzer")r,kÊÍF Z€Y€0¤¤€‚€€‚€€€€€€€€‚ÿHiermit wird eine anwenderdefinierte Maschinen-Routine aufgerufen, der ein Wert übergeben werden kann, und die einen (sinnvollen) Wert zurückliefern kann. Beide Parameter sind Integer-Werte mit dem Wertebereich -32768..32767.Die Startadresse wird z.B. mit DOKE in die Adresse WSP+4 eingetragen.Die Übernahme des Parameters x erfolgt durch Aufruf von EPRVL3 des BASIC-Interpreters (Register DE enthält den Wert für x); die Rückgabe durch Ansprung von FRE3 mit dem Registerpaar AB. Das Maschinenprogramm darf keine weiteren Register verändern.(¦Ê@Í% €€0¤¤€‚ÿF͆Í/ .€.€0¤¤O„¿ß€ƒƒ‚ÿRAM-BASICROM-BASICŃ@ÍKÎB R€€0¤¤„¿ß€€ƒƒ‚€€ƒƒ‚€€ƒƒ‚ÿWSP+4 (USR-Startadresse)2B04h0304hEPRVL3 (Integer-Parameter holen)0C6FhC96FhFRE3 (Integer-Wert abliefern)13B1hD0B1h5†Í€Î' €€6°˜¤¤€‚ÿSiehe auch:ƒAKÎÏB T€„€pi�¦Á~‚iã‚Œ€‰ƒ‚†"€ãwÎè뉂ÿCALLAufruf Maschinenprogramm Maschinennahe Anweisungen 6€Î9Ï1L#„
†lÿÿÿÿ9Ï|VAL()2ÏkÏ* $€€V˜˜fäO€
‚ÿVAL()19ÏœÏ% €€0¤¤€‚ÿy=VAL(x$)8kÏÔÏ% €&€0¤¤€‚ÿ("value"="Wert")U(œÏ5- (€Q€0¤¤€€€‚‚ÔÏ5ÏÿDiese Funktion interpretiert die Zeichenkette x$ als Zahl und wandelt ihn in eine Zahl um. Nachfolgende Buchstaben (außer E für Exponent) brechen den Parse-Vorgang ab. Es erfolgt (leider) keine Auswertung von Ausdrücken.Wurde keine Zahl zur Konvertierung gefunden, liefert diese Funktion 0.3ÔÏh' €€6°˜¤¤€‚ÿBeispiel:P5¸2 4€<€0ÈG‚O€€€���‚ÿ>?VAL("100km") 100OK>_5hí' €€6°˜¤¤€‚ÿSiehe auch:�M¸|B T€œ€pi�¦Á~‚iãù€‰ƒ‚†"€ã%©ßʼn‚ÿSTR$()Zahl in Zeichenkette konvertieren Zeichenketten-Manipulation 6í²1àe‡
7mÿÿÿÿ²\VGET$2|ä* $€€V˜˜fäO€
‚ÿVGET$0²% €€0¤¤€‚ÿy$=VGET$I$ä]% €H€0¤¤€‚ÿ("video get"="vom Bild erhalten")xSÕ% €¦€0¤¤€‚ÿDiese Funktion liefert den Inhalt der Cursorposition als 1-Zeichen-Zeichenkette.5]
' €€6°˜¤¤€‚ÿSiehe auch:RÕ\: D€2€pi�¦Á~‚i€†"€ã11Õ‰‚ÿ Ein- und Ausgabe 8
”1þ†Ønÿÿÿÿ”ZVPEEK()G\Û0 0€.€V˜˜fäO€
âL!‰‚ÿVPEEK() (nur KC85)2
”
% €€0¤¤€‚ÿy=VPEEK(x)DÛQ% €>€0¤¤€‚ÿ("video peek"="Bild spähen")öÄ
G2 2€‰€0¤¤€€€€€‚ÿDiese Funktion liest ein Byte von Video-Adresse x. Dabei entspricht der IRM-Adresse 8000h x=0. VPEEK hat keine eingebaute Bankumschaltung für die 4 Ebenen des KC85/4-Bildwiederholspeichers.5Q|' €€6°˜¤¤€‚ÿSiehe auch:Þ‹GZS t€€pi�¦Á~‚iãËÞ€‰ƒ‚ã¯m'‰ƒ‚ã+
扃‚†"€ãwÎè뉂ÿDEEK()Integer-SpeicherlesenPEEK()Byte-SpeicherlesenVPOKEByte-Speicherschreiben auf IRM-Adresse Maschinennahe Anweisungen 6|�17“oÿÿÿÿ�p
VPOKEFZÖ0 0€,€V˜˜fäO€
âL!‰‚ÿVPOKE  (nur KC85)>�% €2€0¤¤€‚ÿVPOKE <adresse>,<byte>F!ÖZ% €B€0¤¤€‚ÿ("video poke"="Bild stochern")Ï[	2 2€Ÿ€0¤¤€€€€€‚ÿDiese Funktion schreibe ein Byte auf Video-Adresse <adresse>. Dabei entspricht der IRM-Adresse 8000h x=0. VPOKE hat keine eingebaute Bankumschaltung für die 4 Ebenen des KC85/4-Bildwiederholspeichers.5Z�	' €€6°˜¤¤€‚ÿSiehe auch:à�[	p
S t€€pi�¦Á~‚iã(€‰ƒ‚ãå¶'‰ƒ‚ãõÃ剃‚†"€ãwÎè뉂ÿDOKEInteger-SpeicherschreibenPOKEByte-SpeicherschreibenVPEEK()Byte-Speicherlesen aus IRM-Adresse Maschinennahe Anweisungen 5�	¥
1ØTpÿÿÿÿ¥
„
WAIT1p
Ö
* $€€V˜˜fäO€
‚ÿWAITK&¥
!% €L€0¤¤€‚ÿWAIT <port>,<and_mask>[,<xor_mask>]2
Ö
S% €€0¤¤€‚ÿ("warten")‚@!ÕB R€�€0¤¤€€€€€€€€‚€€‚ÿWAIT hält das Programm an, bis an Portadresse <port> ein Wert anliegt, der mit <xor_mask> vorverknüpft und mit <and_mask> verknüpft, einen Wert ungleich 0 ergibt. Während des Wartens erfolgt keine Tastaturabfrage (da hilft meist nur noch RESET).Wird bei <xor_mask> nichts angegeben, wird dafür 0 angenommen.5S

' €€6°˜¤¤€‚ÿSiehe auch:z8Õ„
B T€r€pi�¦Á~‚i㻹€‰ƒ‚†"€ãwÎè뉂ÿINP()Byte-Portlesen Maschinennahe Anweisungen 6

º
1¯“€qÿÿÿÿº
?@WIDTH2„
ì
* $€€V˜˜fäO€
‚ÿWIDTH=º
)% €0€0¤¤€‚ÿWIDTH <ausgabebreite>2
ì
[% €€0¤¤€‚ÿ("Breite")»•)& €+€0¤¤€‚ÿHiermit wird die Länge der Ausgabezeile für PRINT und insbesondere PRINT# (Drucker!) festgelegt. Wird 0 angegeben, erfolgt die Ausgabe unbegrenzt.5[K' €€6°˜¤¤€‚ÿSiehe auch:è•?@S t€-€pi�¦Á~‚iãx쀉ƒ‚ãeO¯‰ƒ‚ãøUr‰ƒ‚†"€ã11Õ‰‚ÿPOS()Position in Ausgabezeile ermittelnPRINTZeichenausgabe auf BildschirmPRINT#ZeichenK?@„
ausgabe auf Peripheriegerät Ein- und Ausgabe 7Kv@1ðTÿÿÿÿrÿÿÿÿv@/EWINDOW3	?@©@* $€€V˜˜fäO€
‚ÿWINDOWDv@í@% €>€0¤¤€‚ÿWINDOW [<za>,<ze>,<sa>,<se>]3©@ A% €€0¤¤€‚ÿ("Fenster")ܯí@üA- (€_€0¤¤€âL!‰‚‚ÿOhne Angabe von Parametern wird ein maximales Fenster gesetzt (bei KC85 wird oben und unten eine Zeile freigelassen). Andernfalls haben die Parameter folgende Bedeutung:a A]BF \€6€0¤¤Oˆ´­©¥€ƒƒâL!‰ƒâL!‰ƒâ€�‰‚ÿKC85KC87Z1013 GÍüA¤Cz €›€0¤¤ˆ´­©¥€€ƒƒƒƒ‚€€ƒƒ€€ƒ€€ƒ€€‚€€ƒƒƒƒ‚€€ƒƒ€€ƒ€€ƒ€€‚ÿ<za>Zeile Anfang0..310..230..31<ze>Zeile Ende (inklusive)<za>..31<za>..23<za>..31<sa>Spalte Anfang0..390..390..31<se>Spalte Ende (inklusive)<sa>..39<sa>..39<sa>..31—p]B;D' €à€0¤¤€‚‚‚ÿMan beachte stets die verschiedenen Bildschirmgrößen bei portabler Programmierung zwischen den KC-Familien!5¤CpD' €€6°˜¤¤€‚ÿSiehe auch:¿^;D/Ea ’€À€pi�¦Á~‚iãeO¯€‰ƒ‚†"€ëÐÏøZKCCAOS.HLP‰ƒ‚†"€ã11Õ‰‚ÿPRINTZeichenausgabe auf Bildschirm %WINDOWCAOS-Systemkommando Ein- und Ausgabe MpD|E1Q†<sÿÿÿÿ|EGƒHC-BASIC: Typen und SpeicherI/EÅE* $€>€V˜˜fäO€‚ÿHC-BASIC: Typen und Speicher4
|EùE' €€6°˜¤¤€‚ÿKonstantenÅŸÅE¾F& €?€0¤¤€‚ÿDer BASIC-Interpreter verarbeitet Integerzahlen (vorzeichenbehaftete ganze Zahlen), reelle Zahlen (Gleitkomma-, Festkommazahlen) und Strings als Konstanten.7ùEõF' € €6°˜¤¤€‚ÿAusgabeformatrM¾FgG% €š€0¤¤€‚ÿDas Ausgabeformat bei PRINT und STR() für eine Zahl ergibt sich wie folgt:2õF™G/ .€€pµ€¦sO„´i€‚ÿ€NgGI2 2€�€pµ€¦s„´i€ƒ‚ƒ‚ƒ‚ÿ1.Integerzahlen zwischen -999999 und +999999 werden als Integerwert ausgegeben.2.Ist der Betrag einer Zahl größer oder gleich 0.01 und kleiner oder gleich 999999, wird die Zahl mit Festkomma und ohne Exponenten ausgegeben.3.Fällt eine Zahl nicht in die Kategorie 1 oder 2, wird sie als  Gleitkommazahl mit Exponent ausgegeben.<™GUI' €*€6°˜¤¤€‚ÿAusgabe-BegrenzungïÂIDK- (€…€0¤¤€âL!‰‚‚ÿHC-BASIC macht von den Möglichkeiten des darunterliegenden Betriebssystems Gebrauch. Bei Zeichenausgaben (PRINT) in ein Fenster (WINDOW) wird nur dieser Inhalt verändert. Wird das Fensterende erreicht, wird der Fensterinhalt eine Zeile hochgerollt, oder, im PAGE-Modus der KC85, der Cursor einfach in die linke obere Fensterecke gesetzt.Ausgaben mit PRINT AT sowie sämtliche Grafikausgaben erfolgen ohne Beachtung der momentanen Fenstergrenzen.AUI…K' €4€6°˜¤¤€‚ÿGrenzen und GenauigkeitÞ·DKcM' €o€0¤¤€‚‚ÿDer Interpreter verarbeitet Zahlen mit einem Betrag zwischen 9.40396E-39  und l.70141E+38 einschließlich Null. Die Genauigkeit entspricht dem IEEE-SINGLE-Format (3 Bytes Mantisse, 1 Byte Exponent), das sind etwa 6 Dezimalstellen.Strings sind Zeichenketten von alphanumerischen Zeichen, die 0..255 Zeichen lang sein können und jedes Zeichen (einschließlich CHR$(0)) enthalten können. Stringkonstanten werden in Hochkomma eingeschlossen.3…K–M' €€6°˜¤¤€‚ÿVariablen{RcM€)  €¥€0¤¤€‚‚‚‚ÿVariablennamen müssen immer mit einem Buchstaben beginnen und können beliebig lang sein. Es werden aber immer nur die beiden ersten Zeichen des Namens verarbeitet.Der Variablenname darf kein reserviertes Wort enthalten. Das sind alle BASIC-Anweisungen.Ein $-Zeichen am Ende des Variablennamens weist sie als Stringvariable aus. Feldvariablen können so viele Indizes haben, wie in eine Eingabezeile passen.HC-BASIC kennt keine speziellen "Integer-Variablen". (Sie helfen bei anderen BASIC-Dialekten, die Geschwindigkeit zu steigern.) Alle numerischen Variablen enthalten Gle–M€/Eitkomma-Zahlen.2–MO€' €€6°˜¤¤€‚ÿSpeichera;€°�& €w€0¤¤€‚ÿHC-BASIC kann bis zu 47 KB RAM verwalten. Diesen Speicher teilen sich das Programm, die Variablen, der Stack (z.B. für die GOSUB-Rückkehradressen) und der Stringspeicher. Die Speicherobergrenze und die Stringspeicher-Größe lassen sich mit CLEAR festlegen; die anderen Speicherbereiche werden dynamisch zugeteilt.5O€å�' €€6°˜¤¤€‚ÿSiehe auch:bã°�Gƒ ̀рpi�¦Á~‚i€†"€ãὉƒ‚†"€ãÈtÖ‰ƒ‚†"€ãeO¯‰ƒ‚†"€ãÐÏøZ‰ƒ‚†"€ãjãIቂÿ CLEARLöschen des Variablenspeichers; Begrenzung des String- und BASIC-Speichers GOSUBUnterprogrammaufruf PRINTZeichenausgabe auf Bildschirm WINDOWFestlegen eines Ausgabe-Fensters Inhalt HC-BASIC-Hilfe;
å�‚ƒ1.«‚×tÿÿÿÿ‚ƒuˆOperatoren7
Gƒ¹ƒ* $€€V˜˜f䀂ÿOperatorenÁ™‚ƒz„( €3€0¤¤€‚‚‚ÿDas HC-BASlC verfügt über alle üblichen mathematischen und logischen Operatoren.Die Reihenfolge der Abarbeitung ist wie folgt hierarchisch geordnet:L¹ƒÆ„. ,€<€0¦¦O„؉€ƒƒ‚ÿVorzugOperationOperatoren)åz„ï…D V€Ë€0¦¦„؉€ƒƒ�ƒƒ�ƒƒ�ƒƒ�ƒƒ�ƒƒ�ƒƒ�ƒƒ�ƒƒ‚ÿ1.Klammern()2.Exponent^3.Negatives Vorzeichen-4.Multiplikation, Division*, /5.Addition, Subtraktion+, -6.Vergleichsoperatoren=, <, >, <=, >=, <>7.Logisches NICHTNOT8.Logisches UNDAND9.Logisches ODERORûÇÆ„ê‡4 6€�€0¤¤€‚€€€€‚‚ÿDie logischen Operatoren wirken bitweise auf 16-Bit-Integerzahlen im Bereich von -32768 bis +32767. Vergleichsoperatoren liefern 0 für FALSCH und -1 (respektive 0FFFFh) für WAHR.Die Vergleichsoperatoren und die Addition als Verknüpfung sind auch auf Strings anwendbar. Dabei ist die Groß- und Kleinschreibung stets von Belang. Der "kleinere" String hat ASCII-Zeichen mit kleineren Werten vorn stehen. Zum Beispiel: "HAUS"<"Haus", "HAUS"<"HAUSEN".5ï…ˆ' €€6°˜¤¤€‚ÿSiehe auch:Vê‡uˆ: D€:€pi�¦Á~‚i€†"€ãjãIቂÿ Inhalt HC-BASIC-Hilfe:	ˆ¯ˆ1ü	<Z�uÿÿÿÿ¯ˆ}ÂFarbcodes6uˆåˆ* $€€V˜˜f䀂ÿFarbcodes–k¯ˆ{‰+ &€Ö€0¤¤€â€�‰‚ÿDie beiden farbtüchtigen Computer-Serien haben verschiedene Farbcodes. Der Z1013 war nur schwarz/weiß.?刺‰' €0€6°˜¤¤€‚ÿFarbcodes (allgemein)
µ{‰ÄŠU x€k€0¤¤€‚ブ€‰€âL!‰�㶹€‰�ã¬àš‰‚€ãeO¯‰‚‚ÿDie Farbfestlegung erfolgt durch die AnweisungenCOLOR <vfarbe>, <hfarbe> (nicht am KC87)INK <vfarbe>PAPER <hfarbe>sowie eingeschachtelt in der PRINT-Anweisung.Mº‰‹; F€$€0¦¦†!Aa€ƒâL!‰ƒƒâL!‰‚ÿKC85KC87f.ÄŠw‹8 @€\€0¦¦O†!Aa€ƒ€ƒƒ€‚ÿFarbe<vfarbe><hfarbe><vfarbe>=<hfarbe>Tè‹ËŒl ¦€Ñ€0¦¦†!Aa€ƒƒƒ�ƒƒƒ�ƒƒƒ�ƒƒƒ�ƒƒƒ�ƒƒƒ�ƒƒƒ�ƒƒƒ�ƒƒƒ�ƒƒƒ�ƒƒƒ�ƒƒƒ�ƒƒƒ�ƒƒƒ�ƒƒƒ�ƒƒƒ‚ÿSchwarz0, 80, 81Blau11 *5Rot22 *2Purpur33 *6Grün44 *3Türkis55 *7Gelb6-4Weiß7, 15-8Braun-6-Grau-7-Violett9--Orange10--Purpurrot11--Grünblau12--Blaugrün13--Gelbgrün14--£vw‹n�- *€ì€0¤¤€‚‚âL!‰‚ÿ* Diese Hintergrundfarben sind eine Nuance dunkler.Nur KC85: Für blinkende Vordergrundfarbe ist 16 zu addieren.P)ËŒ¾�' €R€6°˜¤¤€‚ÿSpezielle Summanden für SpezialeffekteÃn�ÃŽB R€‡€0¤¤€‚ãÖÒ'€‰�ã´7¾«‰�ãı"‰‚€‚ÿFür die GrafikbefehlePSET <x>,<y>[,<g>]CIRCLE <x>,<y>,<r>[,<g>]LINE <xa>,<ya>,<xe>,<ye>[,<g>]gibt es folgende Summanden für spezielle Effekte (nur KC85/4 oder KC85/3 mit CAOS 3.4):-¾�ðŽ* $€€0¤¤O‚�€‚ÿi?ÃŽY�* $€~€0¤¤‚�€ƒ‚ƒ‚ÿ64Überlagerungsfunktion (XOR-Verknüpfung)128LöschfunktionL%ðŽ¥�' €J€6°˜¤¤€‚ÿFarbcodes im hochauflösenden Modus�[Y�2À& €¶€0¤¤€‚‚ÿWird mit der hochauflösenden Grafik (nur KC85/4) gea¥�2Àuˆrbeitet, sind nur 4 Farben möglich:I¥�{À6 <€&€0¦¦O†!Aa€ƒ€€‚ÿFarbe<vfarbe>U"2ÀÐÀ3 6€D€0¦¦†!Aa€ƒ�ƒ�ƒ�ƒ‚ÿSchwarz0Rot1Türkis2Weiß3"ú{ÀòÁ( €õ€0¤¤€‚‚‚ÿBlinken, Überlagerungs- und Löschfunktion sind nicht möglich.Das Betriebssystem unterstützt farbige Zeichenausgabe und Bildschirmlöschen nicht in diesem Modus; hier muß man sich mit einer Reihe von ESC-Sequenzen behelfen oder auf CAOS NT warten.5ÐÀ'Â' €€6°˜¤¤€‚ÿSiehe auch:VòÁ}Â: D€:€pi�¦Á~‚i€†"€ãjãIቂÿ Inhalt HC-BASIC-Hilfe@'½Â1V×ûŠvÿÿÿÿ½ÂÓÎFehlermeldungen<}ÂùÂ* $€$€V˜˜f䀂ÿFehlermeldungend<½Â]Ä( €y€0¤¤€‚‚‚ÿNachdem ein Fehler aufgetreten ist, kehrt der BASIC-Interpreter auf die Kommandoebene zurück. Das Programm kann nicht mit einem CONT-Befehl fortgesetzt werden. Der Zusammenhang aller GOSUB- und FOR-Anweisungen wird erst bei einem erneuten Programmstart wieder hergestellt.Die Fehlermeldung hat folgendes Format:W#ù´Ä4 8€F€pA‚¦/~„A€ƒ€€‚ÿDirekte Betriebsart:?XX ERRORi7]ÄÅ2 4€n€pA‚¦/~‚A€ƒ€€‚ÿIndirekte Betriebsart:?XX ERROR IN <zeilennummer>9´ÄVÅ' €$€6°˜¤¤€‚ÿFehlermeldungen.òÅ„Ç< F€å€pµ€¦s„´i€ƒ‚ƒ‚ƒ‚ƒ‚ƒ‚ƒ‚ƒ‚ƒ‚ÿBADFalsche Verwendung der Elemente des VariablenfeldesBAD INFehler beim Laden bzw. Retten eines VariablenfeldesBSSubscript out of range (Feldelement außerhalb des dimensionierten Bereiches aufgerufenCNCan't Continue (Programm. kann nicht CONT fortgesetzt werden. DDDoubly defined array (Feld mehrfach dimensioniert)FCIllegal function call (unzulässiger Funktionsaufruf)IDIllegal direct (fehlerhafte Eingabe im Direktbetrieb)IOInput/Output-ERROR (falscher Name beim Programmladen).âVÅžÉ8 >€Å€pµ€¦s„´i€ƒ‚ƒ‚ƒ‚ƒ‚ƒ‚ƒ‚ÿLSString too long (Zeichenkette länger als 255 Zeichen)MOMissing operand. (Anweisung unvollständig, Operand fehlt)NFNext without for (Variablen von NEXT und FOR passen nicht zusammen)ODOut of Data (Es wurden mit Data-Anweisungen zuwenig Daten für eine READ-Anweisung spezifiziert)OMOut of memory (Speicherplatz im RAM reicht für die Ablage bzw. Abarbeitung eines Programms nicht aus.OSOut of String space (vereinbarter Speicherplatz für Zeichenketten reicht nicht aus)-õ„ÇËË8 >€ë€pµ€¦s„´i€ƒ‚ƒ‚ƒ‚ƒ‚ƒ‚ƒ‚ÿOVNumeric overflow (Ergebnis einer Berechnung ist größer als 1.70141E38)RGReturn without G0SUB (RETURN trat auf, ohne daß GOSUB aufgerufen wurde)SNSyntax ERROR (syntaktischer Fehler)STLiteral string pool table full (Zeichenkette zu lang oder zu komplex)TMTyp mismatch (Variablen einer Gleichung indizieren verschiedene Typen, z.B: Zahl und String, oder einer Funktion wurde anstatt einer Zahl ein String übergeben oder umgekehrt).UFUndefined user function (Funktion noch nicht definiert)BžÉ
Í2 2€!€pµ€¦s„´i€ƒ‚ƒ‚ƒ‚ÿULUndefined line (es wurde eine nicht existente Zeilennummer angegeben. Häufige Ursache sind Inkonsistenzen im Speicher durch falsches RENUMBER u.ä.)/0Division by zero (Division durch Null)ERRORDas eingegebene Kommando ist für geschützte Programme nicht ausführbar3ËË@Í' €€6°˜¤¤€‚ÿWarnungen×
ÍHÎ1 0€¯€pù�¦/~‚ù€ƒ‚ƒ‚ƒ‚ÿ?REDO FROM STARTAufforderung zur Neueingabe bei INPUT?EXTRA IGNOREDINPUT hat ein zuviel angegebenes Eingabefeld ignoriert. Häufigster Fehler: Komma statt Dezimalpunkt eingegeben??INPUT erwartet weitere Daten5@Í}Î' €€6°˜¤¤€‚ÿSiehe auch:VHÎÓÎ: D€:€pi�¦Á~‚i€†"€ãjãIቂÿ Inhalt HC-BASIC-HilfeP}Î#Ï1ŒZ�݈wÿÿÿÿ#ÏGlossar: Verwendete AbkürzungenL"ÓÎoÏ* $€D€V˜˜fäO€‚ÿGlossar: Verwendete Abkürzungen6#Ï¥Ï' €€6°˜¤¤€‚ÿPfeilsymboleÙ±oÏŠ( €c€0¤¤€‚‚‚ÿDiese Dokumentation wurde in Hierarchieebenen gegl¥ÏŠÓÎiedert aufgebaut.Zur besseren Übersicht bei der Navigation wurden Pfeilsymbole verwendet, die folgende Bedeutungen tragen:6Ç¥ÏÀo ¬€—€pi�¦O‚i€†"€ƒ€€‚†"€ƒ€€‚†"€ƒ€€‚†"€ƒ€€‚ÿSprung (Querverweis) in andere Hilfe-DateiSprung erfolgt eine Hierarchieebene hochSprung erfolgt innerhalb der gleichen HierarchieebeneSprung erfolgt eine Hierarchieebene tiefer€ZŠ@& €´€0¤¤€‚‚ÿAußerdem finden die gleichen Pfeilsymbole Verwendung zur Darstellung der Cursortasten.5Àu' €€6°˜¤¤€‚ÿAbkürzungen†`@û& €À€0¤¤€‚‚ÿDiese Dokumentation HC-BASIC bezieht sich in der vorliegenden Ausgabe auf die Computertypen:JuE/ .€6€pi�¦Á~P‚i€ƒ‚ÿAbkürzungComputer-TypenÍmû` �€Ú€pi�¦Á~‚iâL!€‰€ƒ€€‚âL!€‰ƒ€€€€‚â€�‰ƒ€€‚ÿKC85HC900, KC85/2, KC85/3 und KC85/4KC87Z9001, KC85/1 und KC87Z1013Z1013 und Derivate€ZE’& €´€0¤¤€‚‚ÿDiese Computer-Serien unterscheiden sich recht stark, sind aber untereinander ähnlich.5Ç' €€6°˜¤¤€‚ÿSiehe auch:V’: D€:€pi�¦Á~‚i€†"€ãjãIቂÿ Inhalt HC-BASIC-Hilfe5ÇR1ëÿÿÿÿÿÿÿÿxÿÿÿÿRKC85.€' €€V˜˜fä€
‚ÿKC85ˆ?RI `€€0¤¤€‚€‚€‚€€€€‚‚€€€€‚ÿSammelbezeichnung für die KC85-Serie aus Mühlhausen:HC900, KC85/2, KC85/3, KC85/4.Spezielle Erweiterungen sind: KC85/3 mit CAOS 3.4 sowie KC85/4 mit 256K RAM und 48K ROM mit CAOS 4.3 (geschrieben von M. Leubner), auch genannt KC85/5.Zu KC85 gehört nicht der ebenfalls in Mühlhausen gebaute KC-compact!5€=1ÿÿÿÿÿÿÿÿyÿÿÿÿ=	KC87.k' €€V˜˜fä€
‚ÿKC87¤o=	5 8€ß€0¤¤€€€‚€‚€‚‚ÿSammelbezeichnung für die Z9001/KC87-Serie von robotron, Dresden:Z9001, KC85/1, KC87.Spezielle Erweiterung: Alle diese Geräte sind mit Farboption aufrüstbar. Das Auswechseln des Grundgeräte-RAM durch 64KB ist beinahe problemlos möglich. Ebenso das Nachrüsten von HC-BASIC im Z9001 und KC85/1. Das erspart die Module, die etwas im Blick (zum Monitor) stehen.6kE	1¯ÿÿÿÿÿÿÿÿzÿÿÿÿE	¾Z1013/	t	' €€V˜˜fä€
‚ÿZ1013JE	¾C T€€0¤¤€€€‚€‚€‚€€‚‚€€‚ÿSammelbezeichnung für die Computer-Bausätze Z1013 von robotron-Elektronik, Riesa:Z1013, Z1013A.Spezielle Erweiterung: Diese Bausätze bestanden aus einem anschlußfertigen Einplatinenrechner  sowie einer Folientastatur mit 32 Tasten. Letztere ist besonders hinderlich und wurde beinahe generell durch eine 64- oder 80-Tasten-Tastatur ersetzt. Dafür benötigte man einen anderen EPROM: die A-Variante.Mit dem Z1013 wurde standardmäßig ein Tiny-BASIC (Länge ca. 3K) mitgeliefert; das ist nicht das HC-BASIC. 1t	ï1]ÿÿÿÿÿÿÿÿ{ÿÿÿÿï,¾' €
€0¤¤€‚‚‚ÿ1ïÿÿÿÿ1ÿÿÿÿÿÿÿÿ|ÿÿÿÿÿÿÿÿÿÿÿÿ;2lHelvÎùO~IÝîþ÷Times New RomanäÀtSymbolŠ2äPší'‰†ôArialöŠ2äPší'9†ôCourier75±Ý뾚H7ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿżŸˆB…ûŠ݈BG0ŠT«‚«X¦‡0ŠMq	H‚šƒQ†"ƒ¿@€|‚„ƒ%…*†,ˆ¯ÖªÁ€g�K‚]ƒÄ„1†f„	õ³øäV€$‚¦‡0Š'†€Í„Z�…b…×Z�€³o†Ž0Šq	H‚šƒQ†«‚ûŠ[«‚M
€	ƒ2„<…'†Iü3 æ€ê�Ÿˆ«‚K‚ú‚R„B…	V	Ò	À	€	%�	f„	†	˜
z‡	o†‚ˆ	d
þ
<¢
M
�
Q€
ž�
Ø‚
A„
Ù…
€¯]ƒê���¢ƒC€
¥…÷†XŸˆNg �€ê�ÂÂɃÒ„«‚3C€
o†MÞ
M
I
˜
ö€
ö€
€o†
‚
«‚

‚
«‚
«‚#„
e‡
«‚"ƒ†	ƒÂ7Ø“Z�XT€C€
\€/&;)i24RE KCBASIC.rÿÿ››ÿÿÿÿ!=AbkürzungenABSASCATNAusgabeAusgabebreiteAusgabeformat AUTO$BASIC(BASIC-Anweisungen,BASIC-DialekteLBEEPPBLOADTBORDERXBYE\CALL`CHRdCIRCLEhCLEARlCLOADpCLOSExCLS|COLOR€CONT„COSˆCSAVEŒCSRLIN”Cursor positionieren˜DATAœDEEK DEF¤DELETE¨DIM¬DOKE°EDIT´Editierkommandos¸Eingabe¼EinstiegÄELSEÈENDÌErrorsÐErste SchritteÔEXPØFarbcodesÜFehlermeldungenàFensteräFNèFORìFREðFunktionenôGenauigkeitGlossarGOSUBGOTOGrenzenHintergrundfarbe IF$Inhaltsverzeichnis(INK,INKEY0INP4INPUT8INSTR@INTDJOYSTHKC85LKC87PKEYTKEYLISTXKommentar\Konstanten`KosinusdLEFThLENlLETpLINEtLINESxLIST|LN„LOADˆLOCATEŒMID�Module schalten”NEW˜NEXTœNULL ON¤OPEN¨Operatoren¬OUT°PAPER´PAUSE¸PEEK¼PIÀPOKEÄPOSÈPRESETÌPRINTÐProgramm ladenØProgramm speichernÜProgrammstartàPSETäPTESTèQuadratwurzelìRANDOMIZEðREADôREBASICøREMüRENUMBERRESTORERETURNRIGHTRNDRUNSGNSignumSIN SOUND$Speicher(Spielhebel,SQR0STEP4Steueranweisungen8STOP<STR@STRINGDSWITCHHTANLTangensPTHENTTOXTrace-Modus\TROFFdTRONhÜberblicklÜbersichtpUSRxVAL|Variablen€Vergleich„VGETˆVordergrundfarbeŒVorzeichen�VPEEK”VPOKE˜WAITœWarnungen WBASIC¤WIDTH¨WINDOW¬Wurzel°Z1013´Zufallszahl¸/&;)LzòWš(¿‡ÿvþVšÿÿ}µ}ÿÿÿÿInhalt HC-BASIC-HilfeWas ist HC-BASIC?XAufruf vonHC-BASIC?…Erste Schritte"ƒVergleich mit anderen BASIC-DialektenAlphabetische Übersicht; BASIC-Anweisungen¦‡Editierkommandos0ŠEin- und AusgabeMProgramm-SteueranweisungenqMathematische Funktionen	Zeichenketten-ManipulationH‚Grafik-FunktionenšƒMaschinennahe AnweisungenQ†Arbeit mit Peripherie݈ABS()BASC()«AUTOGATN()¿BEEPBLOAD@€BORDER|‚BYE„ƒCALL%…CHR$()*†CIRCLE; Kreis,ˆCLEAR¯CLOADÖCLOAD*ªCLOSE#ÁCLS€COLORg�CONTK‚COS()]ƒCSAVEÄ„CSAVE*1†CSRLIN()DATAõDEEK()³DEF FNøDELETEäDIMV€DOKE$‚EDITÍ„ENDb…EXP()o†FOR TO STEP NEXTŽFRE()[GOSUBGOTO€IF THEN ELSE	ƒINK2„INKEY$<…INP()'†INPUTIINPUT#üINSTR()INT()3JOYST()€KEYê�KEYLISTú‚LEFT$()R„LEN()B…LET, =	LINEV	LINESÒ	LISTÀ	LIST#€	LN(); Logarithmus%�	LOAD#f„	LOCATE†	MID$()z‡	NEW‚ˆ	NULLd
ONþ
OPEN#¢
OUTM
PAPER�
PAUSEQ€
PEEK()ž�
PIØ‚
POKEA„
POS()Ù…
PRESETPRINT€PRINT#��PSET¢ƒPTEST()¥…RANDOMIZE÷†READŸˆREMNRENUMBERgRESTORE RETURN�RIGHT$()€RND()ê�RUNÂSGN()ɃSIN()Ò„SOUNDÞ
STOPM
STR$()I
STRING$()˜
SWITCHC€
SQR()ö€
TAN()
‚
TROFF«‚
TRON#„
USR()e‡
VAL()†VGET$7VPEEK()ØVPOKE“WAITTWIDTH€WINDOW«‚HC-BASIC: Typen und Speicher<Operatoren×FarbcodesZ�FehlermeldungenûŠGlossar: Verwendete Abkürzungen KC85æKC87\Z1013kpšššš°šššš>Òx›É`•@w
¹
_îVÈ ˜^È�`Ý>B¡fQŠg�^1`“>.È>`ü£˜^Ê’`ÝD¹D_òM``ðÔÚJ¹D¹	~J``ðÔÚL`ú¹VYw0åøD_õL÷ùL`ú¹€B€Lx,Á~``ùN`ú¹~)N÷ùgÝ@ÿ`¡`_üŠ`�üy>)¿`g‘N¿g�\@w¹!>º�i2>,ÑO*áVx,ÁV¥Ì�E<yé`�`•F¹
FVù9KFù|`£GV¤Š¹aˆ~uˆ^:ˆ`vˆù9`GVlŠˆ�&O3Vw¹.VwÈ(Kú´VwÒáKàù|GVU<wй
~ŠÒ`GVlxŠÐ·fŠOo3GVU<wÈ	Kú´~7ù|~~w¹E¹g0E�àl¬{­E”`¢`› `ŒÍ`bk�^GVU:f¸~
›GVU;f¸~
›GVW¹	>�*GVW›GVU=wÈJ¹�Z�/&;)L4ÈIÍBw°`IVÿÿ{ {ÿÿÿÿ�¿›œXPn¦�q84¤@€´7¾«*†0W¬ÖÕʳ­Ä„'#È­1†�©³øOÜþº×g¿Z�(%¿N%©ßÅ	Ú¼ìÉg©Ø!ÔM11Õ0Š3[ÕÕûŠjãIá«)TáIwÎè뚃¶�Áûf„	É…œÿ"ƒI€Ò€	Sd
yž�
ò}݈½€Bó€Gúˆ|‚e�%…ŽÁ“ŽK‚Ä”ä˜̈́…žb…=¤o†±¤Ž¶¹	ƒ»¹<…¿¹³Æ€áÍR„çÍB…¼Õ†	\Üz‡	Bæ¢
xìA„
6ùŸˆ°ú€çûê�ÆÂɃxC€
ùM
ýö€
@#„
me‡
+±«ªq¿‚Œ„ƒþñg�bÄËÞõ(V€Ú$‚GÍL! L!æ—“"ú‚ı"	ª²"Ò	êÚ"%�	Gu%‚ˆ	’†&þ
–†&<ì±&«‚¯m'Q€
å¶'Ø‚
ÖÒ'��"Ú)÷†r+Þ
‘§,«‚
œÃ.†…Ï/“\ÛÍá½,ˆ
¯	ªƒ–€|"
]ƒ™r-³ÈtÖ[6W=2„þ}='†|“=üís3ÜÓV	�ÔÀ	¬àšM
›�
eO¯~ ±¢ƒ(ª�[‚HÒ„íN…$€
‚
õÃå7+
æØêkT€�\g�mÙ…
øUr€
`. ­ô.:I
0×À:˜
4Ÿ&BH‚0jLQ†šð£Lí¯]YÐÏøZ€¶É×\¦‡i9"`¥…mr¡}ê�à{#'`#8`#2�`#&I÷úѼ€>#&&¹	P÷÷�5·~a�NVU	üx`£NV#^DØzUJ(UU{##gý„`ϱá!`g`€¿±×?{új#)>{új#(È )bÐ(bÎg#`()Ïux#¿>²>�C¹d¹`NVUÒÏ1É`£g#gFuVW#�M€4È`#28````šM�'°NVUѺ`£`~:�~(š~ �&F_ÿÑFu£M``�2È'M
÷"`*```€x)f¸JùŸ2:nGFDš#%¹þTU7NVU2zÏóNVUÑ칌~ªús#$M%~J.``€!)f¸t.wÈnð›ø÷ø4~XùŸF#÷÷âÎuð›ø4W
÷úæ``„øDz#÷4úž,ð›÷4âÂ’~2Ï÷÷âÎ÷ø,
kÂ÷,úž
àg�g²
`Ž# 8a Dš°Z9ÈXN`'%zý°€Ikús+
¸ENVUÏ>NVUÑ7k¸	z
{kÑ*kÂ
g�g²`Ž# 2Ê_œÿ²0#8gkÅm /š°8````š±þüy2~š8¹e~šÈ7L¹L_ó_qðÔ¹X
kÂ
_ƒÿ`°kÂ	_Ñ``°_„ÿ~
{™°%L¹
~9_r,ðÔ¹#÷,_–÷÷,âÑl€:f¸°L¹	~`_p`ù
÷"`gúÞ�9gÝÊÿú+l~,U-U	0ð›ø	÷	úÑÈQ¤º`Ý�Wwº`Ýó`ük÷	óâÏ	÷	_F|âÎ`ÝùŸ½``ý«°ý`ý«.``
•`Ï{aÙzÐuÝðÿV€-x)Éa)ÿ&-	.P§uÑ	Pz§7¯8yñ`ˆ`£`¢HÒ›	—
’Ý`¢`£—
’aÝÌÿH`ÎÝ`›``û>!»�°nK¹_FF_`FV€4Í_€°YK_FF|úæ€%.»÷°_FF|`/01K_FF|gúù2fÅuåäøK÷€A3^:¸^8Â_—€=¼K÷�(¶±¬ÿ´^
`Pù<_1”Cº�BI»Iù;Ý>»>ù;ÝúÿC`````^—ùÅ` Ýøÿ~lclpÀÀn$ÿÿÿ²ü~ü||x<p`dL||||||||||ülclpÀÀn$ÿÿÿ²üü|üxüqü`@`qüxü|üüülclpÀÀn$ÿÿÿ²ü||||||||||dL`px<||~üülclpÀÀn$ÿÿÿ²üü~|~<@@@~<~|üü
Detected encoding: ANSI (CP1252)4
Wrong umlauts? - Assume file is ANSI (CP1252) encoded