 Projekt Project Hardware Hardware Bedienung Operation BASIC (1) BASIC (1) BASIC (2) BASIC (2) BASIC (3) BASIC (3) Interna Internals Beispiele Examples Erweiterungen Extensions Bibliotheken Libraries Treiber Driver Programme Programs
 Bezugsquellen: Where to buy: Bausatz Kit Leerplatine Empty board | 
AVR-ChipBasic2: BASIC-Referenz (1) AVR ChipBasic2: BASIC Reference (1) Grundlagen Basics V1.45 (c) 2006-2012 Jörg Wolfram V1.45 (c) 2006-2012 Jörg Wolfram 
1 Allgemeines 1 General Jedes Programm besteht aus maximal 95 Programmzeilen (1-95). Each program consists of a maximum of 95 lines of code (1-95). Für
längere Schlüsselwörter existieren teilweise Abkürzungen, diese stehen
in rechteckigen Klammern neben der ausgeschriebenen Version. For longer keywords partially abbreviations exist, these are shown in square brackets next to the advertised version. Nach jedem Schlüsselwort muss ein Leerzeichen stehen. After each keyword must be a space. Viele
Befehle blenden nicht benutzte Bits bei den Parametern aus (zB COLOR)
oder begrenzen auf den gültigen Wertebereich (zB PLOT). Many commands do not dazzle bits used at the limit of parameters (eg COLOR) or on the valid range of values (eg, PLOT). Leider
werden in der aktuellen Version nicht alle Fehler abgefangen, in so
einem Falle (meist wird der ganze Bildschirm mit Nullen oder unsinnigen
Zeichen vollgeschrieben) sollte man mit CTRL+ALT+DEL den Computer neu
starten und sich den BASIC-Programmtext nocheinmal ansehen.
Unfortunately, in the current version, not all errors are caught, in
such a case (usually the whole screen full written with zeros or
meaningless characters) you should start with CTRL + ALT + DEL the
computer and look at the BASIC program text again.
2 Zahlen, Variablen und Funktionen 2 numbers, variables and functions AVR-ChipBASIC kennt nur einen Datentyp, und das sind 16 Bit Integerzahlen. Basic AVR chip has only one data type, and these are 16-bit integers. Dazu gibt es 26 Variablen (AZ) und ein Array mit 768 oder 1024 Elementen AR(), dazu aber später mehr. There are 26 variables (AZ) and an array of 768 or 1024 elements, AR (), to that later. Konstanten
können sowohl in Dezimalform als auch in Hexadezimalform eingegeben
werden, wobei bei letzterer keine negativen Werte erlaubt sind. Constants can be entered in decimal or in hexadecimal form, where in the latter case no negative values are allowed. Hexadezimalzahlen beginnen mit $ . Hexadecimal numbers begin with $. Folgende Operationen sind erlaubt: The following operations are permitted:
- Addition + Addition +
- Subtraktion - Subtraction -
- Multiplikation * Multiplication *
- Division / Division /
- Modulo % Modulo%
- Und-Verknüpfung & And operation &
- Oder-Verknüpfung # Or operation #
- Exclusiv-Oder-Verknüpfung ^ Exclusive-or operation ^
- Vergleiche ( =,<>,<,<=,>,>= ) liefern 0 für falsch oder 1 für wahr Comparisons (=, <>, <, <=,>,> =) return 0 for false and 1 for true
- Bit-Shift nach links << Bit-shift to left <<
- Bit-Shift nach rechts >> Bit-shift to the right >>
Dazu kommen noch öffnende und schließende Klammern sowie Funktionen. Then there are the opening and closing parentheses, and functions. Die Operatoren sind in unterschiedliche Prioritätsgruppen eingeteilt. The operators are divided into different priority groups. Soll die Priorität eines Operators erhöht werden, müssen die dazugehörigen Operanden geklammert werden. If the priority of an operator can be increased, the corresponding operands are bracketed.
| Priorität Priority | Operatoren Operators | | höchste highest | * , / , % , # , ^ *, /,%, #, ^ | | ... ... | << , >> << >> | | ... ... | + , - , & +, -, And | | niedrigste Lowest | = , <> , < , <= , > , >= =, <>, <, <=,>,> = |
Funktionen können im Gegensatz zu Schlüsselwörtern nicht abgekürzt werden. Functions as opposed to keywords not be abbreviated. Da die öffnende Klammer Bestandteil des Funktionsnamens ist, darf zwischen Funktionsname und Klammer kein Leerzeichen stehen. Since the opening parenthesis is part of the function name, and function name between brackets must be no blank.
| ABS( ABS ( | Berechnet den Absolutwert des eingeklammerten Ausdruckes Calculates the absolute value of the bracketed expression | | SGN( SGN ( | Berechnet das Vorzeichen (-1,0,1) des eingeklammerten Ausdruckes Calculates the sign (-1,0,1) of the bracketed expression | | NOT( NOT ( | invertiert den eingeklammerten Ausdruck inverts the bracketed expression | | SQR( SQR ( | zieht die Quadratwurzel aus dem eingeklammerten Ausdruck takes the square root of the bracketed expression | | RND( RND ( | erzeugt eine Zufallszahl zwischen 0 und dem eingeklammerten Ausdruck generates a random number between 0 and the bracketed expression | | IN( IN ( | liefert
den Pegelwert des angegebenen Portpins (0-7) an der parallelen
Schnittstelle, ist der Parameterwert 255 werden die Portpins als Byte
eingelesen, provides the level of the specified port pins (0-7)
on the parallel port, the parameter value is 255, the port pins are read
as bytes, | | SPI( (SPI | gibt ein Byte über die SPI-Schnittstelle aus und gibt den eingelesenen Wert zurück outputs a byte over the SPI interface and returns the value read | | TEMP( TEMP ( | liefert den Temperaturwert des angegebenen LM75-Sensors (0-7) returns the value of the specified temperature LM75 sensor (0-7) | | ADC( ADC ( | liefert den Analogwert der Spannung des angegebenen Portpins (0-7) an der parallelen Schnittstelle provides the analog value of the voltage of the specified port pins (0-7) on the parallel port | | XPEEK( XPEEK ( | liest ein Datenbyte aus dem optionalen Daten-EEPROM, der Klammerausdruck bestimmt die Adresse reads a byte of data from the optional data EEPROM, the term in brackets determines the address | | EPEEK( EPEEK ( | liest ein Datenbyte aus dem internen EEPROM, Adresse 0...999 reads a byte of data from the internal EEPROM, address 0 .. 999 | | VPEEK( VPEEK ( | liest ein Datenbyte aus dem Bildwiederholspeicher reads a byte of data from the frame buffer | | LO( LO ( | liefert das niederwertige Byte des eingeklammerten Ausdruckes provides the least significant byte of the bracketed expression | | HI( HI ( | liefert das höherwertige Byte des eingeklammerten Ausdruckes provides the most significant byte of the bracketed expression | | KEY( KEY ( | liefert verschiedene Tastaturabfragen, siehe Abschnitt Tastatur provides various keyboard queries, see section Keyboard | | AR( AR ( | Array-Wert (su) Array value (see below) | | SIN( SIN ( | liefert den Sinus des Winkels (in 1/10 Grad) mal 255 returns the sine of the angle (in 1/10 degree) times 255 | | COS( COS ( | liefert den Cosinus des Winkels (in 1/10 Grad) mal 255 returns the cosine of the angle (in 1/10 degree) times 255 | | FTYPE( FTYPE ( | siehe Abschnitt Dateifunktionen Section file functions | | FSIZE( FSIZE ( | siehe Abschnitt Dateifunktionen Section file functions | | ERR( ERR ( | Fehlerinformationen, siehe Abschnitt Fehlerhandling Error information, see section Error Handling | | XREC( XREC ( | liest einen Datenblock via XModem-Protokoll ein reads a block of data via XModem protocol | | DBIT( DBIT ( | konvertiert Zeichensatzdaten converted font data | | PSTAT( PSTAT ( | Sequenzer-Status, siehe Abschnitt Audio Sequencer status, see Section Audio |
Zusätzlich zu den normalen Variablen gibt es noch die Arrayvariable AR() . In addition to normal variables, there is the array variable AR ().
- Die Zellen 0...767 sprechen den internen Bereich byteweise an The cells 0 .. 767 speak to the internal byte-range
- Die Zellen 768...1023 sprechen die aktive Page des externen Bereiches byteweise an The cells .. 1023 768th speak the active page of the external area of bytes
- Die Zellen 1024...1407 sprechen den Bereich im wortweise an Cells 1024 ... 1407 to speak to the area in the word-
- Die Zellen 1408...1535 sprechen die aktive Page des externen Bereiches wortweise an Cells 1408 ... 1535 speak the active page of the external area of word-
Bei
den Byte-Zugriffen befindet sich das LOW-Byte an der geraden Adresse
und das High-Byte an der darauf folgenden ungeraden Adresse. At the byte accesses to the LOW byte is at the even address and the high byte at the next odd address. Wird auf eine Array-Zelle zugegriffen die nicht existiert, wird mit einer Fehlermeldung abgebrochen. Is an array accessed the cell does not exist, is aborted with an error message. Über AR() lässt sich nur vom Array lesen, Schreibzugriffe müssen mit DATA erfolgen. About AR () can be read only by the array, writes must be done with DATA. Um auf das externe Array zuzugreifen, kann mittels des Befehles PAGE nn die aktive Page im externen Speicher eingestellt werden. To access the external array, by means of the command, the active page PAGE nn in the external memory can be adjusted. Einige
Dinge wie Datei-I/O funktionieren nur mit dem internen Array-Speicher,
um den externen Speicher nutzen zu können, müssen die Daten mittels ACOPY umkopiert werden.
Some things like file I / O will only work with the internal memory
array to use the external memory can, the data must be copied using ACOPY. Voraussetzung dafür ist, dass auf Programmplatz 8 ein Treiber mit Unterstützung für XMEM geladen wurde. Prerequisite for this is that to channel 8, a driver was loaded with support for XMEM.
3 Wertzuweisung 3 assignment Wertzuweisungen
beginnen nicht mit einem Schlüsselwort, sondern mit einem
Variablennamen gefolgt von einem Gleichheitszeichen und einem Ausdruck. Assignments do not begin with a keyword, but with a variable name followed by an equals sign and an expression. 01 A=-4 01 A = -4
02 B=SQR(8*2) 02 B = SQR (8 * 2)
|
3.1 ASHIFT v,n 1.3 ASHIFT v, n Der Absolutwert der Variable v wird um n Bits verschoben. The absolute value of the variable v is shifted n bits. Für N>0 wird bitweise nach links verschoben, für N<0 nach rechts. For N> 0 is shifted left, for N <0 to the right. Sinnvolle Werte für N liegen zwischen -15 und +15. Reasonable values for N range from -15 to +15. Im
Gegensatz zu den Shift-Operatoren wird nur der Absolutbetrag
verschoben, damit liefert dieser Befehl auch bei negativen Werten ein
richtiges Ergebnis. In contrast to the shift operators only the
absolute value is shifted, so that this command also provides for
negative values, a correct result. 01 A=-39 01 A = -39
02 ASHIFT A,-1 02 ASHIFT A, -1
03 PRINT A 03 PRINT A
| Da A um 1 Bits nach rechts verschoben wird, wird der Wert -19 ausgegeben. Since A is shifted by one bit to the right, the value of -19 is output. Im Gegensatz dazu ergibt: In contrast, yields: 01 A=-39 >> 1 01 A = -39 >> 1
02 PRINT A 02 PRINT A
| das Ergebnis 32749, da in die Vorzeichenstelle eine 0 geschoben wurde. the result of 32,749 as in the sign position one was pushed 0th
3.2 LIMIT v,min,max [LIM] 3.2 LIMIT v, min, max [LIM] Der Wert der Variable v wird auf den Wertebereich min...max begrenzt. The value of the variable v to the range min ... max limit. Die Funktion ist nur auf Variablen, nicht auf Arrayelemente erlaubt. The function is only allowed on variables, not to array elements. 01 LIMIT A,1,6 LIMIT 01 A, 1.6
02 LI B,C,C+4 LI 02 B, C, C +4
| im
ersten Beispiel wird die Variable A auf den Bereich 1...6 begrenzt, im
zweiten Beispiel die Variable B auf den Wertebereich, der durch den
Inhalt der Variable C und die 4 darauffolgenden Zahlen begrenzt ist.
in the first example, the variable A is limited to the range 1 .. 6, in
the second example, the variable B. to the value range, which is
limited by the contents of the variable C, and the four subsequent
numbers
3.3 SCALE Variable,Y0,Y1,X0,X,X1 03.03 SCALE variable, Y0, Y1, X0, X, X1 Dieser Befehl dient dazu, Werte von einem Bereich in einen anderen zu transformieren. This command is used to transform values from one region to another. X ist dabei der "INPUT"-Bereich, Y liefert das Resultat. X is the "INPUT" area, Y provides the result. Ein Beispiel: An example: 01 V=180 01 V = 180
02 SCALE A,0,100,0,V,256 02 SCALE A, 0,100,0, V, 256
03 ? 03? V V
| liefert zB als Resultat den wert 70 . supplies such as the result worth the 70th In diesm Falle heißt das, der Wert von V (180) entspricht 70 Prozent vom Maximalwert 256. Diesm in case this means that the value of V (180) is equivalent to 70 percent of the maximum value of the 256th Man
kann sich das so vorstellen, daß das Resultat so zwischen Y0 und Y1
liegt, wie der Wert X zwischen den Grenzen X0 und X1 liegt. One can imagine the way that the result is so between Y0 and Y1, as the value of X between the limits X0 and X1 is. Die Formel dafür ist: The formula is: Y = Y0 + ((Y1-Y0) * (X-X0) / (X1-X0)) Y = Y0 + ((Y1-Y0) * (X-X0) / (X1-X0))
| Damit das Ganze auch hinreichend genau ist, wird intern mit 32 Bit gerechnet. So that the whole is sufficiently accurate and is on an internal 32-bit. Aufgrund
der begrenzten internen Programmspeicherkapazitäten werden aber nicht
alle Bedingungen für das Zustandekommen eines gültigen Resultates
überprüft. Due to the limited internal storage program but not all of the conditions for the occurrence of a valid outcome are reviewed. So sollte Y1 betragsmäßig immer größer als Y0 sein, X1 betragsmäßig größer als X0 sein und X sollte zwischen X0 und X1 liegen. Should be Y1 magnitude is always greater than Y0, X1 may be greater in magnitude than X0 and X should be between X0 and X1.
3.4 DATA offset,value1,value2... 3.4 DATA offset, value1, value2 ... [DA] [DA] Die Array Elemente werden ab Byte (offset) initialisiert. The array elements are initialized from byte (offset). Als Werte kommen Konstanten, numerische Ausdrücke und Zeichenketten in Frage. As values come constants, numeric expressions and strings in question. Im
Word-Bereich des Arrays (ab Offset 1024) werden immer 16 Bit
geschrieben, das betrifft insbesondere Zeichenketten wo das HIGH-Byte
immer 0 ist. Word in the area of the array (starting at offset
1024) always 16 bits are written, the concerns in particular strings
where the HIGH byte is always 0. Andersherum wird im Bytebereich des Arrays nur das Low-Byte der Werte geschrieben. Vice versa in the range of bytes of the array only the low byte of the value is written. 01 DATA 0,"Hallo",0 01 DATA 0, "Hello", 0
| Das Array wird ab Element 0 mit der nullterminierten Zeichenkette "Hallo" belegt. The array is from element 0 is the null-terminated string "Hello".
3.5 ACOPY source,dest,num... 3.5 ACOPY source least, num ... [AC] [AC] Eine Anzahl (num) von Array Elementen wird ab Byte (source) nach Byte (dest) kopiert. A number (num) of array elements are copied from byte (source) to byte (least). Das Kopieren erfolgt elementweise, so kann zB auch von 8 auf 16 Bit erweitert werden. Copying is performed element-wise, it may for example be extended from 8 to 16 bits. Andersherum wird beim Kopieren vom Word- in den Bytebereich des Arrays nur das Low-Byte der Werte geschrieben. The other way is to copy the written Word in the range of bytes of the array only the low byte of the values. 02 ACOPY 0,1029,10 02 ACOPY 0,1029,10
| Das Array wird ab Byte-Element 0 in die Word-Elemente 1029...1038 (Byte-Elemente 10...29) kopiert. The array is copied from byte offset 0 in the Word Elements 1029 ... 1038 (byte elements 10 .. 29). Wichtig ist dabei, dass die Arrayzellen nur aufsteigend kopiert werden. It is important that the array cells are copied only in ascending order. Überlappen
sich Quell- und Zielbereich und ist die Quelladresse kleiner als die
Zieladresse, wird das Ergebnis nicht dem Gewünschten entsprechen, das
Teile des Quellbereiches überschrieben werden bevor sie in den
Zielbereich kopiert werden. If they overlap the source and target
area and is the source address is smaller than the destination address,
the result is not what is desired, the parts of the source area are
overwritten before they are copied to the target area.
3.6 DBIT(N) 3.6 DBIT (N) Diese Funktion vereinfacht das Erstellen von selbstdefinierten Zeichen im Videomodus 4. This feature simplifies the creation of user-defined characters in video mode 4 Vom
Argument N werden nur die 6 unteren Bits berücksichtigt und in ein
Bitmuster umgewandelt, welches bei der Darstellung dem Erwarteten
entspricht. The argument N, only the lower 6 bits are taken into
account, and converted into a bit pattern, which corresponds to the
representation of the expected. Grund
dafür ist die Organisation des Zeichenspeichers: Hier werden Bit 0+1
nicht benutzt, Bit 7 entspricht dem Pixel ganz links und die
nachfolgenden Bits (6...2) ensprechen jeweils der Differenz zum
vorherigen Pixel. This is due to the organization of the
character memory: This bit is not used 0 +1, bit 7 corresponds to the
leftmost pixel and the subsequent bits (6 .. 2) is in compliance with
each of the difference to the previous pixel. Sollen zum Beispiel alle 6 Pixel in einer Zeile gesetzt werden, muß 0x80 im Byte stehen. If, for example every 6 pixels are placed in a row, must stand in the 0x80 byte. Bit 7 ist "1" und alle nachfolgenden "0", was "keine Änderung" bedeutet. Bit 7 is "1" and all subsequent "0", "no change" means. Damit man sich diese Umrechnung ersparen kann, rechnet die Funktion DBIT() das anzuzeigende Bitmuster systemgerecht um. So you can save yourself this conversion, the function expects DBIT () to display the bit pattern to system requirements. Vom Parameter N werden dabei nur die unteren 6 Bits benutzt. The parameter N while only the lower 6 bits are used. 01 VM 4:? 01 SM 4:? @0,0;%0;:BORDER 4 @ 0.0, 0%;: BORDER 4
02 DA 0,"88GG88GG88" 02 DA 0, "88GG88GG88"
03 WAIT 10 03 WAIT 10
04 FOR K=0 TO 9:C=DBIT(AR(K)) 04 FOR K = 0 TO 9: C = DBIT (AR (K))
05 VPOKE 1448+K*128,C:NEXT 05 VPOKE 1448 + K * 128, C: NEXT
| Das
Programm ändert nach 1 Sekunde das Aussehen von Zeichen 0 welches links
oben angezeigt wird, in eine Art "Schachbrettmuster". The program changes after 1 second the appearance of characters 0 which is displayed top left, in a "checkerboard".
4 Programmsteuerung 4 Program Control
4.1 BREAK 01.04 BREAK Setzt einen Breakpoint, ruft den Monitor auf. Sets a breakpoint calls on the monitor.
4.2 END 4.2 END Mit dem END-Befehl wird das Programm an der aktuellen Stelle beendet. With the END instruction, the program is terminated at the current position. Das gleiche geschieht auch, wenn die letzte Programmzeile abgearbeitet ist. The same also happens when the last line of code is executed.
4.3 GOTO n [GO] 4.3 GOTO n [GO] Mit dem GOTO-Befehl kann die Programmabarbeitung mit einer anderen Zeile fortgesetzt werden. With the GOTO command, the program execution continues with another row. Argument ist ein beliebiger Ausdruck. Argument is any expression. 01 B=0:GOTO 2 01 B = 0: GOTO 2
02 GO B+1 02 GO B +1
| Das ist eine Endlosschleife, die nur mit CTRL+C abgebrochen werden kann. This is an infinite loop that can only be terminated by CTRL + C.
4.4 IF - THEN 4.4 IF - THEN Die bedingte Anweisung besteht aus IF gefolgt von einem Ausdruck. The conditional statement is followed by an expression of IF. Ist
das Ergebnis des Ausdrucks Null, wird zum Anfang der nächsten Zeile
gesprungen, andernfalls wird die Zeile weiter abgearbeitet. If the expression evaluates to zero, the beginning of the next line is bounded, otherwise the line continues to be processed. Das THEN kann auch weggelassen werden. THEN the can also be omitted. Schon
wegen der Übersichtlichkeit und Lesbarkeit des Codes sollte dies aber
nur dann erfolgen, wenn kein Platz mehr in der Zeile ist. Just because of the clarity and readability of the code but this should be done only when there is no space in the line. Folgt als erstes eine Wertzuweisung, muss bei fehlenden THEN ein Doppelpunkt zwischen die beiden Anweisungen gesetzt werden. Follows as the first value assignment, missing THEN require the colon between the two statements are set. 01 IF A>5 THEN A=5 01 IF A> 5 THEN A = 5
02 IF A>5:A=5 02 IF A 5>: A = 5
| Beide Ausdrücke bewirken exakt das Gleiche. Both expressions cause exactly the same.
4.5 FOR - NEXT 4.5 FOR - NEXT Bei der Zählschleifen-Abarbeitung gibt es nur die Grundform FOR A=B TO C ohne die Angabe der Schrittweite, die konstant 1 ist. When counting loops-processing, there is only the basic form FOR A = B TO C without indicating the step size is constant first Die
Schleife wird auf jeden Fall mindestens 1 mal durchlaufen, wenn C
keiner als B ist findet ein Überlauf statt und die Anzahl der
Schleifendurchläufe ist N=C-B+65536. The loop is executed in any
case at least 1 time, when C B is not as there is an overflow and the
number of iterations is N = C-B +65536. 01 CLS 01 CLS
02 FOR A=0 TO 9 02 FOR A = 0 TO 9
03 FOR B=0 TO 9 03 FOR B = 0 TO 9
04 PLOT A,B,3 PLOT 04 A, B, 3
05 NEXT :NEXT 05 NEXT: NEXT
| Dieses Programm zeichnet ein Rechteck in die obere linke Ecke des Bildschirmes. This program draws a rectangle in the upper left corner of the screen.
4.6 REPEAT - UNTIL [REP - UNT] 4.6 REPEAT - UNTIL [REP - UNT] Dies ist eine weitere Schleifenkonstruktion, eine sogenannte Fußgesteuerte oder auch Nichtabweis-Schleife. This is another loop structure, called a foot operated or Nichtabweis loop. Das heißt, der Programmteil zwischen REPEAT und UNTIL wird mindestens einmal durchlaufen. That is, the program section between REPEAT and UNTIL is executed at least once. 01 A=0 01 A = 0
02 REPEAT 02 REPEAT
03 ? 03? A A
04 A=A+3 04 A = A +3
05 UNTIL A<10 05 UNTIL A <10
| Schreibt die Zahlen 0,3,6 und 9 untereinander auf den Bildschirm. Writes the numbers 0,3,6 and 9 to each other on the screen. Systembedingt gibt es kein EXIT, um eine Schleife abzubrechen. Depending on the system, there is no EXIT to cancel a loop. Ein einfaches GOTO aus der Schleife heraus ist auch keine gute Lösung, da damit ein Stackeintrag blockiert wird. A simple GOTO out of the loop is not a good solution because it maintains a stack entry is blocked. Eine praktikable Lösung wäre: A practical solution would be: 01 REPEAT 01 REPEAT
02 ? 02? "Hallo! "; "Hello";
03 IF KEY(0)>0 UNT 0: GO 5 03 IF KEY (0)> 0 LO 0: GO 5
04 UNTIL 1 04 UNTIL 1
| schreibt solange "Hallo!" while writes "Hello!" auf den Bildschirm, bis eine Taste gedrückt wird. is pushed on the screen, to a key. Das UNTIL 0 bewirkt in diesem Fall, dass der reservierte Stackeintrag wieder freigegeben wird. The UNTIL 0 results in this case that the reserved stack record is released.
4.7 GOSUB [GOS] 4.7 GOSUB [GOS] GOSUB Expr
ruft das Unterprogramm in der durch den Ausdruck definierten Zeile auf,
auf die Zeilennummer können noch bis zu 5 Parameter folgen. GOSUB Expr calls the subroutine defined by the expression in the row, the row number can be up to 5 parameters follow. Da der Stack auf 10 Einträge begrenzt ist, lassen sich nur insgesamt 10 Schleifen bzw. Unterprogrammaufrufe schachteln. Since the stack is limited to 10 entries, which can be nested, which has 10 loops and subroutine calls. 01 GOSUB 4,2,3 GOSUB 01 4,2,3
02 ? 02? ~R ~ R
03 END 03 END
04 RETURN ~(1)+~(2) 04 RETURN ~ (1) + ~ (2)
| Das Unterprogramm in Zeile 4 addiert die beiden Parameter, in diesem Fall 2 + 3 = 5. The subroutine in line 4 adds the two parameters, in this case 2 + 3 = 5 In der zweiten Zeile wird dann das Resultat ausgegeben. The second line then the result is output.
4.8 RETURN [RET] 4.8 RETURN [RET] Mit RETURN wird aus einem Unterprogramm wieder zurückgesprungen, mit RETURN returnwert kann ein 16 Bit Wert zurückgegeben werden, der dann mit der Systemvariable ~R im aufrufenden Programm verfügbar ist. With RETURN jumps back from a subroutine again, using RETURN returnValue a 16 bit value to be returned, which is then available to the system variable ~ R in the calling program.
4.9 CALL 4.9 CALL Eine weitere Anweisung ist CALL prognr,zeile die Unterprogramme in einem der 7 anderen Programme aufrufen kann. Another statement CALL Prog, line the subroutines can call one of the 7 other programs. Damit ist es möglich, den gesamten Programmspeicherbereich für eine einzige Anwendung zu nutzen. So that it is possible to use the entire program memory area for a single application. Auf die Programm- und Zeilennummer können noch bis zu 5 Parameter folgen, der Rücksprung erfolgt wie gehabt mit RETURN . On the program and line number may follow up to 5 parameters, the operation is returned as usual with RETURN. Da der Stack auf 10 Einträge begrenzt ist, lassen sich nur 10 Schleifen bzw. Unterprogrammaufrufe schachteln. Since the stack is limited to 10 entries, only 10 can be nested loops and subroutine calls. Weiterhin
führt das Verlassen von Schleifen oder Unterprogrammen zu blockierten
Stack-Einträgen, die dann nicht mehr genutzt werden können. Furthermore, the exit of loops or subroutines leads to blocked stack entries that no longer can be used. Wenn das aufgerufene Programm vom Typ Binär ist, gibt es zwei Möglichkeiten: If the called program type is binary, there are two possibilities:
- Der zweite Parameter ist eine Zahl und gibt den Offset zum Programmanfang in WORDS an. The second parameter is a number and returns the offset to the program beginning in WORDS. Möglich sind Werte zwischen 0...1535. Possible values are 0 .. 1535th Danach können noch bis zu 4 weitere Parameter an das Binärprogramm übergeben werden. After that, up to 4 additional parameters to pass to the binary. Das T-Flag im Statusregister ist bei Übergabe zurückgesetzt The T flag in the status register is reset at handover
- Der zweite Parameter ist eine in Gänsefüsschen gesetzte Zeichenkette. The second parameter is displayed as a string quote char. Hier wird dann ein Zeiger auf die Zeichenkette im Y-Register übergeben. Here then a pointer is passed to the string in the Y-register. Einsprungadresse ist Programmanfang+9 WORDS, das T-Flag im Statusregister ist bei Übergabe gesetzt Jump-start program is +9 WORDS, the T flag in the status register is set for transfer
4.10 LFIND V,n Lfind 4.10 V, n Mit dieser Anweisung lässt sich feststellen, ob eine bestimmte Binärbibliothek geladen ist. This statement can be determined whether a particular Binärbibliothek is loaded. Dazu hat jede dieser Bibliotheken eine (hoffentlich) eindeutige Kennung in Byte 14 und 15. For this purpose, each of these libraries 15th a (hopefully) unique identifier in byte 14 and Wenn das LOW-Byte des Suchwertes gleich 0 ist, wird das LOW-Byte der Bibliotheks-ID ignoriert. When the low byte of the search value is 0, the low byte of the library ID is ignored. Die Variable wird auf 1...8 gesetzt, wenn eine entsprechende Bibliothek gefunden wurde. The variable is set to 1 .. 8, when an appropriate library is located. 01 LFIND L,$1200 Lfind L $ 01, 1200
02 IF L>0 GOTO 4 GOTO 02 IF L> 0 4
03 ?"MATLIB1 NICHT GEFUNDEN":END ? 03 "MATLIB1 NOT FOUND": END
04 ?"MATLIB1 AUF PLATZ";L: ? 04 "MATLIB1 ON PLACE", L:
|
4.11 VID n 4:11 VID n Dieser Befehl ersetzt seit Version 1.00 die Befehle SLOW und FAST um die Bildausgabe ein- und auszuschalten. This command replaces the commands since version 1.00 SLOW and FAST to the image output on and off. Mit VID 0 wird die Bidausgabe ausgeschaltet, Synchronsignale werden auch weiterhin erzeugt. VID 1 schaltet die Bildausgabe wieder ein. With VID 0 the Bidausgabe off, synchronous signals are generated in the future. VID 1 on the image output again. Mit
ausgeschalteter Bildausgabe ist die Geschwindigkeit höher, da ein
großer Teil der Rechenleistung normalerweise für die Bilddarstellung
verwendet wird. With switched image output the speed is higher,
since a large part of the computing power is normally used for the image
display. Es
sollte dabei beachtet werden, dass damit auch der Aufruf geladener
Videotreiber abgeschaltet wird, was zB bei einem PWM- oder LED-Multiplex
Treiber ungewünschte Folgen haben kann. It is to be noted that
thus also the call charged video driver is turned off, which for
example, may have undesirable consequences in a PWM or LED multiplexing
driver.
4.12 Die System-Variablen 4.12 The system variables Die
Sytem-Variablen (definiert durch vorangestellte Tilde, also die
"Schlangenlinie") geben Auskunft über den System-Zustand und können nur
gelesen werden. The sytem variables (defined by preceding tilde,
ie the "serpentine") provide information about the system state and can
only be read. Zwischen das Tilde-Zeichen ~und dem Buchstaben für die Systemvariable darf sich KEIN LEERZEICHEN befinden. Between the tilde ~ and the letter for the system variable must be NO SPACES are.
4.12.1 Das Array ~(1) ... 4.12.1 The array ~ (1) ... ~(5) (Funktionsparameter) ~ (5) (function parameters) In diesem Array stehen die Parameter, die beim letzen GOSUB bzw. CALL übergeben wurden. In this array are the parameters that were passed in the last GOSUB or CALL. Liegt das Argument außerhalb des Bereiches 1...5, wird 0 zurückgegeben. If the argument is outside the range first .. 5, 0 is returned.
4.12.2 ~M (Mikrocontroller) 4.12.2 ~ M (microcontroller) In dieser Variable steht, ob es sich um einen Mega644 (1) oder Mega644P (2) handelt. This variable is whether it is a Mega644 (1) or Mega644P (2) is. Dabei
wird ein Mega644P mit Input-Pin der ersten seriellen Schnittstelle an
PD3 als Mega644 behandelt, da auch hier die zweite serielle
Schnittstelle nicht nutzbar ist. Here, a Mega644P is treated with
input pin of the first serial port to PD3 as Mega644, as here also the
second serial interface is not usable.
4.12.3 ~L (aktuelle Programmzeile) 4.12.3 ~ L (current line) Diese Variable liefert als Wert die gerade abgearbeitete Programmzeile. This variable returns the value as a straight line program worked off. Damit lassen sich zB relative Sprünge realisieren. Can thus be realized as relative jumps. Der
Wert liegt zwischen 1 und 95, die folgende Programmzeile ezeugt in
jeder Zeile eine Endlosschleife, die einen "bunten" Rand erzeugt: The value is between 1 and 95, the following line of code in each row ezeugt an infinite loop that creates a "colorful" border: xx A=(A+1)&15:BORDER A: GOTO ~L xx A = (A +1) & 15: A BORDER: GOTO ~ L
|
4.12.4 ~N (Parameter-Anzahl) 4.12.4 ~ N (number of parameters) In dieser Variable steht, wieviele Parameter beim letzten GOSUB bzw. CALL übergeben wurden. This variable is how many parameters at the last GOSUB or CALL passed.
4.12.5 ~P (aktuelles Programm) 4.12.5 ~ P (current program) Diese Variable liefert als Wert das gerade abgearbeitete Programm. This variable returns a value that just worked off program. Der Wert liegt zwischen 1 und 8. The value is 1 to 8 Wenn
mittels CALL P,N ein Unterproramm in einem anderen Programm aufgerufen
wurde, wird nicht das aufrufende Programm zurückgegeben, sondern das im
Moment aktive. When using CALL P, N a Unterproramm was called in
another program, will not be returned to the calling program, but the
currently active.
4.12.6 ~R (Return-Wert) 4.12.6 ~ R (return value) Diese Variable enthält den zuletzt bei RETURN angegebenen Wert. This variable holds the last value specified in RETURN.
4.12.7 ~S (Scanline) 4.12.7 ~ S (Scanline) Diese Variable liefert als Wert die aktuelle Bildschirmzeile, die gerade dargestellt wird. This variable returns the value of the current line on the screen that is currently displayed. Bei NTSC bewegt sich der Wert zwischen 0 und 262, bei PAL zwischen 0 und 312. NTSC moves the value between 0 and 262, for PAL between 0 and 312 Anwendungsgebiete sind zB genauere Zeitmessungen, bei denen TGET zu grob auflöst. Applications include precise measurements, which dissolves TGET too coarse. Dabei sollte aber die Videoausgabe abgeschaltet werden. These should be turned off the video output. 01 REPEAT :UNTIL ~S<230:BO 4 01 REPEAT: UNTIL ~ S <230: BO 4
02 REPEAT :UNTIL ~S>100:BO 0:GO 1 02 REPEAT: UNTIL S ~> 100: BO 0: GO 1
| Auf dem Bldschirm sollte jetzt oben und unten ein grüner Rand zu sehen sein, dazwischen ist der Bildschirm schwarz. On the Bldschirm should now look up and down a green border, between the screen is black. Allerdings
ist dabei ein starkes Zittern der Kanten zu beobachten, was einfach
daher rührt, dass die Abarbeitung der Befehle länger dauert als eine
Bildschirmzeile. However, while a strong tremor of the edges is
observed, which is due simply to the fact that the execution of the
commands takes longer than a screen line.
4.12.8 ~V (Videosystem) 4.12.8 ~ V (Video System) diese Variable liefert als Wert die Anzahl der Bildschirmzeilen je Halbbild. This variable returns the value as a number of screen lines per field. Eine mit ~S ermittelte aktuelle Bildschirmzeile wird immer zwischen 0 und ~V -1 liegen. A measure based on ~ S current display line will always be between 0 and ~ V -1. Bei NTSC ist ~V = 263, bei PAL beträgt der Wert 313. If NTSC is ~ V = 263, PAL displays the value of the 313th
4.12.9 ~X (X-Ausdehnung) 4.12.9 ~ X (X dimension) diese Variable liefert als Wert die Anzahl der Pixel in horizontaler Richtung. this variable provides the value and number of pixels in the horizontal direction. Dabei wird die aktuelle Auflösung berücksichtigt. Here, the current resolution is considered. In Video-Mode 0 hat die variable zB den wert 60 und im Mode 1 den Wert 168. In video mode 0 as the variable has the value 60, and in Mode 1 the value of the 168th
4.12.10 ~Y (Y-Ausdehnung) 4:12:10 ~ Y (Y dimension) diese Variable liefert als Wert die Anzahl der Pixel in vertikaler Richtung. this variable provides the value and number of pixels in the vertical direction. Dabei wird die aktuelle Auflösung berücksichtigt. Here, the current resolution is considered. In Video-Mode 0 hat die variable zB den wert 46 und im Mode 1 den Wert 116. In video mode 0 as the variable has the value 46, and in Mode 1 the value of the 116th
4.13 Erweiterungen 4.13 Extensions Wenn
sich auf Programmplatz 6 eine Bibliothek mit Bibliothekscode
0x70...0x7f befindet, können dort zusätzliche Befehle ausgewertet und
ausgeführt werden. If there is to channel 6 is a library with
library code 0x70 ... 0x7f, there can be additional commands are
evaluated and executed. Diese Befehle beginnen mit einem Unterstrich. These commands begin with an underscore. Ist der Befehl dort nicht bekannt oder keine passende Bibliothek geladen, wird mit einem UNKNOWN KEYWORD Fehler abgebrochen. If the command is not known or there is no suitable library is loaded, terminated with an error UNKNOWN KEYWORD. Wie bei den eingebauten Befehlen können auch Variablen oder Parameter folgen. As with the built-in commands can also follow variables or parameters.
5 Bildschirm-Ausgabe 5 screen output
5.1 COLOR F(,B) [COL] 5.1 COLOR F (, B) [COL] Mit dem COLOR-Befehl wird die Vorder- sowie die Hintergrundfarbe festgelegt. With the COLOR command the front and sets the background color. Diese
wird im Gegensatz zu früheren Versionen bei allen Ausgaben
bercksichtigt, da jetzt für jedes Zeichen Vorder- und Hintergrundfarbe
einzeln festgelegt werden können. This is in contrast to previous
versions into consideration in all editions since now for each
character foreground and background color can be set individually. Wird nur ein Parameter angegeben, wird nur die Vordergrundfarbe gesetzt. If only one is specified, only the foreground color is set. Akzeptiert werden Werte von jeweils 0 bis 15, ohne die "16-Farben Erweiterung" sind die Farben 0...7 und 8...15 identisch: Accepted values of from 0 to 15, without the "16-color extension" are the colors 0 .. 7 and 8 .. 15 are identical:
| Wert Value | 0/8 0/8 | 1/9 Ninth | 2/10 2/10 | 3/11 3/11 | 4/12 4/12 | 5/13 5/13 | 6/14 6/14 | 7/15 7/15 | | Farbe Color | schwarz black | blau blue | rot red | magenta magenta | grün green | cyan cyan | gelb yellow | weiss white |
Wenn
die "16-Farben Erweiterung" eingebaut wurde, stehen 8 zusätzliche
Farben zur Verfügung, wobei die ersten 8 Farben insgesamt etwas dunkler
werden. If the "16-color extension" was installed, there are 8 additional colors are available, with the first 8 color becomes darker.
| Wert Value | 0 0 | 1 1 | 2 2 | 3 3 | 4 4 | 5 5 | 6 6 | 7 7 | | Farbe Color | schwarz black | blau blue | rot red | magenta magenta | grün green | cyan cyan | gelb yellow | hellgrau light gray | | Wert Value | 8 8 | 9 9 | 10 10 | 11 11 | 12 12 | 13 13 | 14 14 | 15 15 | | Farbe Color | dunkelgrau dark gray | hellblau light blue | hellrot light red | hellmagenta Light Magenta | hellgrün lime | hellcyan light cyan | hellgelb light yellow | weiss white |
01 COLOR 4,2 01 COLOR 4.2
| Hier wird die Zeichenfarbe "Grün auf rotem Grund" festgelegt, was allerdings nicht gerade besonders gut lesbar ist. Here the character color "green on a red background" is defined, but this is not just very easy to read.
5.2 CLS 5.2 CLS Mit dem CLS-Befehl wird der Bildschirm gelöcht. With the CLS command, the screen is gelöcht. Beim Programmstart geschieht das automatisch. When the program starts, this happens automatically. Es wird die eingestellte Hintergrundfarbe (beim Programmstart schwarz) verwendet. It will set the background color (black on startup) used.
5.3 BORDER B [BO] 5.3 BORDER B [BO] Mit diesem Befehl kann die Randfarbe eingestellt werden, gültige Werte sind 0...15. This command allows to set the border color, valid values are 0 .. 15
5.4 POS Y,X 5.4 POS Y, X Mit dem POS-Befehl wird der Schreibcursor an die Stelle Y,X gesetzt. With the POS command, the write cursor at the point Y, X. Nach jedem Löschen des Bildschirms wird der Cursor auf die Position 0,0 (links oben) gesetzt. After each blank the screen, the cursor is on the 0,0 position (top left) is set.
5.5 WRAP n 5.5 WRAP n Mit dem WRAP-Befehl kann das Verhalten am Bildschirmende im Textmodus eingestellt werden. With the WRAP command, the behavior of the screen end to set in text mode. Mit WRAP 0 wird der Bildschirm beim Erreichen des Bildschirmendes um eine Zeile nach oben gescrollt. WRAP 0 of the screen when it reaches the end of the screen to scroll up one line. Dies ist auch die Standardeinstellung beim Start. This is also the default startup. Mit WRAP 1 wird beim Erreichen des Bildschirmendes der Cursor auf den Bildschirmanfang zurückgesetzt. WRAP 1 when it reaches the end of the screen cursor is reset to the initial screen. BeimProgrammstart ist der Wert mit 0 vorbelegt. When starting the program, the value is the default 0.
5.6 PRINT [?] 5.6 PRINT [?] Der
PRINT-Befehl dient zur Ausgabe auf den Bildschirm oder auf die
serielle/parallele Schnittstelle, in das Array oder auf die
I2C-Schnittstelle. The PRINT command is used to output to the screen or to the serial / parallel port, in the array or on the I2C interface. Zusätzlich kann die Ausgabe noch formatiert werden. The warning can not be formatted. Anstelle des PRINT Befehls kann auch (BASIC-üblich) ein Fragezeichen verwendet werden. Instead of the PRINT command can also (usually BASIC) a question mark may be used.
| "TEXT" "TEXT" | der Text TEXT wird ausgegeben TEXT the text is output | | #Expr # Expr | Festlegung des Ausgabekanals (su) Definition of the output channel (see below) | | !Expr ! Expr | Stellt das Format ein (su) Represents the format (see below) | | @Expr1,Expr2 @ Expr1, Expr2 | Cursorpositionierung (Y=Expr1, X=Expr2) Cursor positioning (Y = Expr1, X = Expr2) | | %Expr % Expr | Direkte Ausgabe eines Zeichens mit Zeichencode=Expr Direct output of a character with character code = Expr | | &Expr & Expr | gibt Arrayelemente als Zeichen aus. array elements are as characters. Gestoppt wird bei einem Null-Byte oder wenn das Ende des Arrays erreicht ist. Is stopped at a zero byte, or if the end of the array is reached. Funktioniert nur im Bytezugriff auf das Array. Works only in byte access to the array. | | Expr Expr | gibt das Ergebnis des Ausdrucks mit dem eingestellten Format aus outputs the result of the expression with the set format | | ; ; | Trenner zwischen Ausdrücken Separator between expressions | | , , | Trenner zwischen Ausdrücken, Leerzeichen bis zur nächsten durch 8 teilbaren Position Separator between expressions, spaces up to the next divisible by 8 Position |
Steht am Ende des PRINT-Befehls einer der beiden Trenner, wird kein Zeilenvorschub ausgeführt. At the end of the PRINT command of the two separators, no line feed is executed. Der Ausgabekanal legt fest, wohin die Zeichen ausgegeben werden. The output channel determines where the characters are printed. Bei Ausgabekanal >3 wird auf die I2C-Schnittstelle mit der Kanalnummer als Devicenummer ausgegeben. With output channel> 3 is on the I2C interface output with the channel number as the device number. Dabei wird das niederwertigste Bit auf 0 gesetzt (Schreibmode). The least significant bit is set to 0 (write mode).
| #0 # 0 | Ausgabe auf den Bildschirm, Defaulteinstellung Output to the screen, the default setting | | #1 # 1 | Ausgabe auf die serielle System-Schnittstelle Output to the serial system interface | | #2 # 2 | Ausgabe auf die parallele Schnittstelle Output to the parallel port | | #3 # 3 | Ausgabe in das Array Output in the array | | #4 # 4 | Ausgabe auf die zweite serielle Schnittstelle (nur ATMega 644P) Output on the second serial port (only ATMega 644P) | | #5... # 5 .. | Ausgabe über die I2C-Schnittstelle Output via the I2C interface |
Das Format ist ein Wert zwischen 0 und 255, wobei die Bits folgende Bedeutung haben: The format is a value between 0 and 255, where the bits have the following meaning:
| Bit 7 Bit 7 | 0=dezimale Ausgabe, 1=hexadezimale Ausgabe 0 = decimal output, 1 = hexadecimal output | | Bit 6 Bit 6 | 1 schaltet auf Großdarstellung um 1 switches to enlarge it | | Bit 4/5 Bit 4/5 | Kommaposition (0-3 Nachkommastellen), nur für dezimale Ausgabe Decimal point position (0-3 decimal places), only for decimal output | | Bit 2/3 Bit 2/3 | Anzahl der ausgegebenen Ziffern (2-5), nur für dezimale Ausgabe Number of issued numbers (2-5), only for decimal output | | Bit 0/1 Bit 0/1 | 0=Kompakt, 1=fhrende Leerzeichen 2=führende Nullen 3=führende Nullen mit Vorzeichen 0 = solid, 1 = 2 = fhrende spaces leading zeros 3 = leading zeros with sign | | Bit 0 Bit 0 | 2/4 Zeichen bei hexadezimaler Ausgabe 2/4 hexadecimal characters in output |
Bei
Ausgabe auf den Bildschirm wird der Cursor auf die entsprechende
Position gesetzt, bei Ausgabe auf die serielle oder parallele
Schnittstelle wird die Positionierung ignoriert. When output to
the screen, the cursor is set to the appropriate position on the issue
to the serial or parallel port, positioning is ignored. Bei
Ausgabe in das Array entspricht der erste Wert Array-Byteposition*256
und der zweite Wert der Array-Byteposition, ohne @ ist die Byteposition
zu Beginn jedes PRINT-Befehls 0x0000. For output to the array
corresponds to the first byte position value array * 256 and the second
value of the array byte position without @ is the byte position for the
start of each PRINT command 0x0000. Wird über die I2C-Schnittstelle ausgegeben, so wird zuerst 0xff und danach xxxxxxxx und yyyyyyyy gesendet. Is output via the I2C interface, it is first sent, and then 0xff xxxxxxxx and yyyyyyyy. Die Änderung wude notwendig, um Zeichen zB auf extern angeschlossenen GLCD's feiner positionieren zu können. The change wude necessary to position characters as fine on externally connected GLCD's can.
5.7 CBOX Y1,X1,Y2,X2 7.5 CBOX Y1, X1, Y2, X2 Mit dem CBOX-Befehl wird ein Rechteck gelöscht (mit der aktuellen Hintergrundfarbe). With the CBOX command deletes a rectangle (with the current background color). 01 CBOX 3,3,5,5 01 CBOX 3,3,5,5
| löscht oben links ein Quadrat von 3x3 Zeichen. clears the upper left is a square of 3x3 characters.
5.8 FRAME Y1,X1,Y2,X2 FRAME 8.5 Y1, X1, Y2, X2 Zeichnet einen Textrahmen mit Umrandung. Draws a text box with a border. 01 COLOR 7,3:FRAME 0,0,22,29 01 7.3 COLOR: FRAME 0,0,22,29
| Zeichnen einen Textrahmen mit voller Bildschirmgröße, violettem Untergrund und weißer Zeichenfarbe. Draw a text box with full screen size, purple background and white characters color.
5.9 HFRAME Y1,X1,Y2,X2 9.5 HFRAME Y1, X1, Y2, X2 Zeichnet einen Textrahmen mit Umrandung und einem "Kopfbereich", so wie zB auch das Hauptmenü aufgebaut ist. Draws a text box with a border and a "head area," as well as the main menu is structured. 01 COLOR 7,3:HFRAME 0,0,22,29 01 7.3 COLOR: HFRAME 0,0,22,29
02 COLOR 3,7:?@1,1;"HFRAME" ? 02 COLOR 3,7: @ 1.1; "HFRAME"
| Zeichnen einen Textrahmen wie im vorigen Beispiel, allerdings jetzt mit einem Kopfbereich und Text darin. Draw a text box as the previous example, but now with a header and text in it.
5.10 IBOX Y1,X1,Y2,X2 5:10 IBOX Y1, X1, Y2, X2 Mit dem IBOX-Befehl werden in einem Rechteck Vorder- und Hintergrundfarbe vertauscht. By IBOX command in a square front and background colors are swapped. Die Zeichen selbst werden nicht verändert. The characters themselves are not changed. 01 IBOX 0,0,0,0 01 IBOX 0,0,0,0
| invertiert das Zeichen in der linken oberen Ecke. inverts the sign in the upper left corner.
5.11 SCROLL n 5:11 SCROLL n In den Vieomodi 0, 4 und 6 gibt es ein Scrollfenster, in dem in alle 4 Richtungen gescrollt werden kann. In Vieomodi 0, 4 and 6, there is a scrolling window, you can scroll in the in all 4 directions. Das Fenster beginnt bei Zeichen 2 in Zeile 2 und geht bis Zeichen 27 in Zeile 20. The window starts at number 2 in line 2 and goes up to number 27 in line 20 Somit
gibt es um das Scrollfenster einen 2 Zeichen breiten Rand in dem zB
Informationen stehen, die nicht mitgescrollt werden sollen. Thus, there is the scroll window to a 2 characters wide margins in the information, eg, which should not be scrolled. Die freiwerdende Zeile wird mit Leerzeichen in der aktuellen Farbeinstellung gefüllt. The released line is filled with blanks in the current color setting.
| n n | Richtung Direction | | 0 0 | nach oben up | | 1 1 | nach rechts right | | 2 2 | nach unten down | | 3 3 | nach links left |
verschiebt das Scrollfenster um 1 Zeichen nach unten. moves the scroll window down to 1 character.
5.12 GETCHAR variable,Y,X [GCH] 5:12 getchar variable, Y, X [GCH] Ermittelt das Zeichen an der Position y,x und schreibt dieses in die Variable v. Determines the character at the position y, x, and writes this in the variable v. 11 GCH F,0,0 11 GCH F, 0.0
| Schreibt den Zeichenwert von Position 0,0 in die Variable F. Writes the character value of 0,0 position in the variable F.
5.13 GETATTR variable,Y,X [GAT] 5:13 GETATTR variable, Y, X [GAT] Ermittelt das Attributbyte an der Position y,x und schreibt dieses in die Variable v. Finds the attribute byte at position y, x, and writes this in the variable v. 12 GAT F,0,0 12 GAT F 0.0
| Schreibt den Attributwert von Position 0,0 in die Variable F. Dabei setzt sich das Attribut folgendermassen zusammen: Write the attribute value of 0,0 position in the variable F. What this means is the attribute of the following:
| Bit Bit | Funktion Function | | 0 0 | Hintergrundfarbe Bit 0 Background color bits 0 | | 1 1 | Hintergrundfarbe Bit 1 Background color bit 1 | | 2 2 | Hintergrundfarbe Bit 2 Background color bit 2 | | 3 3 | Hintergrundfarbe Bit 3 Background color bit 3 | | 4 4 | Vordergrundfarbe Bit 0 Foreground color bit 0 | | 5 5 | Vordergrundfarbe Bit 1 Foreground color bit 1 | | 6 6 | Vordergrundfarbe Bit 2 Foreground color bit 2 | | 7 7 | Vordergrundfarbe Bit 2 Foreground color bit 2 |
Dabei
ist zu beachten, daß die Bits wegen der Kompatibilität zu früheren
Versionen und der 8-Farben Hardware im Bildspeicher physisch anders
angeordnet sind: It should be noted that the bits are for
compatibility with previous versions, and the 8-color image in the
memory hardware physically arranged differently:
| Bit Bit | Funktion Function | | 0 0 | Hintergrundfarbe Bit 3 Background color bit 3 | | 1 1 | Hintergrundfarbe Bit 0 Background color bits 0 | | 2 2 | Hintergrundfarbe Bit 1 Background color bit 1 | | 3 3 | Hintergrundfarbe Bit 2 Background color bit 2 | | 4 4 | Vordergrundfarbe Bit 3 Foreground color bit 3 | | 5 5 | Vordergrundfarbe Bit 0 Foreground color bit 0 | | 6 6 | Vordergrundfarbe Bit 1 Foreground color bit 1 | | 7 7 | Vordergrundfarbe Bit 2 Foreground color bit 2 |
6 Tastatur 6 Keyboard
6.1 INPUT [INP] 6.1 INPUT [INP] Es können durch Kommata getrennt Zeichenketten und Variablen angegeben werden. It can comma separated strings and variables are specified. Die Zeichenketten werden ausgegeben, die Variablen bewirken einen Eingabecursor. The strings are displayed which variables cause an input cursor. Falsch eingegebene Zeichen können mit der Backspace-Taste korrigiert werden. Characters entered incorrectly can be corrected with the backspace key. Es ist auch möglich, Ausdrücke einzugeben die dann berechnet werden. It is also possible to enter expressions which are then calculated. Das folgende Beispiel zeigt einen kleinen Rechner, das letzte Ergebnis ist in der Variable M gespeichert. The following example shows a small computer, the final result is stored in the variable M. 01 INPUT "AUFGABE: ",M 01 INPUT "TASK:" M
02 PRINT "ERGEBNIS:";M 02 PRINT "RESULT"; M
03 GOTO 1 03 GOTO 1
| Gibt man als erstes "1+2" ein, erhält man "3". Are you the first "1 +2" a, one obtains "3". Gibt man danach "M*5" ein, erhält man "15". Is it then "M * 5", you get "15".
6.2 CTEXT adr,anz 6.2 CTEXT addr num, Kopiert den zuletzt bei Input eingegebenen Text in das Array byteweise ab Element adr . Copies the last entered in text input element in the array byte from adr. Als Endemarkierung wird ein Nullbyte angehängt. As marking the end of a null byte is appended. Mit dem 2.Parameter anz wird die Anzahl der maximal einzulesenden Bytes begrenzt. Anz with the 2nd parameter the maximum number of bytes to read is limited. Dabei ist zu beachten, dass wegen dem angehängten Nullbyte effektiv anz +1 Bytes kopiert werden. It should be noted that due to the attached Nullbyte effectively cnt +1 bytes to be copied. 01 INPUT "Text: ",M 01 INPUT "text:" M
02 CTEXT 0,4 02 CTEXT 0.4
03 X=0 03 X = 0
04 C=AR(X):IF C=0 THEN END 04 C = AR (X): IF C = 0 THEN END
05 PRINT %C;:X=X+1:GOTO 4 PRINT 05% C, X = X +1: GOTO 4
| Der
nach der Eingabeaufforderung eingegebene Text wird eine Zeile tiefer
wiederholt, wobei nur die ersten 4 Zeichen ausgegeben werden. The inserted after the prompt text that is repeated one line down, with only the first 4 characters are printed.
6.3 Die Keycodes 6.3 The key codes Neben den "normalen" ASCII-Werten für Ziffern, Zahlen und Satzzeichen liefern RKEY und WKEY auch Codes für Funktionstasten etc.
Besides the "normal" ASCII values for digits, numbers and punctuation
marks and provide RKEY WKEY also codes for function keys, etc.
| Code Hexadezimal Hexadecimal code | Code Dezimal Code Decimal | Taste Button | | $C0 $ C0 | 192 192 | Power Power | | $C1 $ C1 | 193 193 | Sleep Sleep | | $C2 $ C2 | 194 194 | Wake Wake | | $E0 $ E0 | 224 224 | Pos1 Pos1 | | $E1 $ E1 | 225 225 | End End | | $E2 $ E2 | 226 226 | Pfeiltaste nach links Left arrow key | | $E3 $ E3 | 227 227 | Pfeiltaste nach rechts Right Arrow | | $E4 $ E4 | 228 228 | Pfeiltaste nach oben Arrow up | | $E5 $ E5 | 229 229 | Pfeiltaste nach unten Arrow down | | $E6 $ E6 | 230 230 | Bild hoch Page up | | $E7 $ E7 | 231 231 | Bild runter PageDown | | $E8 $ E8 | 232 232 | Einfg (Ins) Insert (Ins) | | $E9 $ E9 | 233 233 | Entf (Del) Delete (Del) | | $EA $ EA | 234 234 | Enter Enter | | $EB $ EB | 235 235 | Tabulator Tabulator | | $EC $ EC | 236 236 | Backspace Backspace | | $ED $ ED | 237 237 | Esc Esc | | $F1...$FC $ F1 ... $ FC | 241...252 241st .. 252 | F1...F12 F1 ... F12 |
6.4 Die Funktion KEY 6.4 The function KEY Diese Funktion liefert verschiedene Tastaturabfragen. This function provides various keyboard queries. Als Parameter wird die Art der Abfrage eingetragen. As parameters the type of query entered. Bei KEY(0) bis KEY(2) zählen Shift, CTRL und ALT nicht als gedrückte Tasten. KEY (0) to KEY (2) include Shift, Ctrl and Alt keys pressed as not.
| KEY(0) KEY (0) | Es wird die gedrückte Taste oder 0x00 zurückgegeben It returns the key pressed or 0x00 | | KEY(1) KEY (1) | Es wird auf einen Tastendruck gewartet, Resultat ist der Code der gedrückten Taste. The system waits for a key press, the result is the key pressed. | | KEY(2) KEY (2) | Es wird gewartet, bis keine Taste mehr gedrückt ist, zurückgegeben wird der Code der zuletzt gedrückten Taste. It waits until no key is pressed, returns the code of the last key pressed. | | KEY(3) KEY (3) | Es wird der Status der Shift- und CTRL Tasten zurückgeliefert. The status of the Shift and Ctrl keys are returned. Belegung su Occupancy su | | KEY(4) KEY (4) | linke Shift-Taste liefert 1, linke Control-Taste liefert -1, beide zusammen 0 left shift key provides 1, left Control key and returns -1, 0 along both | | KEY(5) KEY (5) | rechte Shift-Taste liefert 1, rechte Control-Taste liefert -1, beide zusammen 0 right shift key provides 1, right Control key and returns -1, 0 along both | | KEY(6) KEY (6) | Taste Cursor links liefert -1, Taste Cursor rechts liefert 1 Cursor Left returning -1 Cursor Right yields 1 | | KEY(7) KEY (7) | Taste Cursor nach unten liefert -1 Taste Cursor hoch liefert 1 Cursor down Cursor returns -1 high returns 1 | | KEY(8) KEY (8) | Es wird der zuletzt gelesene Scancode zurückgeliefert It is the last read scancode returned | | KEY(9...255) KEY (9 .. 255) | Es wird gewartet, bis die Taste mit dem entsprechenden Keycode gedrückt wird It waits until the button is pressed the corresponding key code |
Belegung der Bits beim Rückgabewert von KEY(3): Assignment of bits in the return value of KEY (3):
| Bit Bit | Funktion Function | | 0 0 | Linke Shift-Taste Left Shift | | 1 1 | Rechte Shift-Taste Right Shift | | 2 2 | Linke CTRL-Taste Left CTRL key | | 3 3 | Rechte CTRL-Taste Right CTRL key | | 4 4 | ALT-Taste ALT | | 5-7 5-7 | Interne Verwendung Internal use |
7 Zeit 7 time
7.1 WAIT n 7.1 WAIT n Mit dem WAIT-Befehl wird N*0,1 Sekunden gewartet. Use the WAIT command waits N * 0.1 seconds. N kann wieder ein beliebiger Ausdruck sein. N can again be any expression. Im
Videomode 7 kann es dabei durchaus sein, dass der Treiber die Zeit
nicht weiterzählt und die Funktion nicht wieder zurückkehrt. In video mode 7, it may be that the driver the time stops counting and the function does not return. Das hängt aber von der konkreten Treiberimplementation ab. But this depends on the particular driver implementation. wartet 1 Sekunde, bis das Programm fortgesetzt wird. waits 1 second until the program resumes.
7.2 SYNC n 7.2 SYNC n Mit dem SYNC-Befehl wird auf N Bildsynchronimpuse gewartet. The SYNC command is awaited N Bildsynchronimpuse. N kann wieder ein beliebiger Ausdruck sein. N can again be any expression. Im
Videomode 7 kann es dabei durchaus sein, dass der Treiber die Zeit
nicht weiterzählt und die Funktion nicht wieder zurückkehrt. In video mode 7, it may be that the driver the time stops counting and the function does not return. Das hängt aber von der konkreten Treiberimplementation ab. But this depends on the particular driver implementation. wartet 6 Sekunden, bis das Programm fortgesetzt wird. waits 6 seconds until the program resumes. Das gilt nur für PAL, bei NTSC wird nur ca. 5 Sekunden gewartet. This only applies to PAL, NTSC only waited about 5 seconds.
7.3 TSET n 7.3 TSET n Der interne Timer (10Hz) wird auf den Wert n gesetzt. The internal timer (10 Hz) is set to the value n. setzt den Timer auf 0. sets the timer to 0
7.4 TGET V 7.4 V TGET Der interne Timer (10Hz) wird ausgelesen und in die Varaiable V gespeichert. The internal timer (10Hz) is read and stored in the Varaiable V. Im Videomode 7 kann es dabei durchaus sein, dass der Treiber die Zeit nicht weiterzählt und die Funktion die bei TSET gesetzte Zeit zurückliefert. In video mode 7, it may be that the driver the time stops counting and the function returns the set at time TSET. Das hängt aber von der konkreten Treiberimplementation ab. But this depends on the particular driver implementation. Damit kann zB die Laufzeit von Programmen bestimmt werden. This can be determined, eg the duration of programs.
7.5 ONSYNC L,N ONSYNC 7.5 L, N Ähnlich dem Timer-Interrupt bei einem Mikrocontroller können mit ONSYNC zeitgesteuerte Unterprogrammaufrufe eingerichtet werden. Similar to the timer interrupt with a microcontroller can perform scheduled with ONSYNC subroutine calls are established. Dabei ist L die Zeilennummer und N die Anzahl der Bildsynchronimpulse zwischen zwei Aufrufen. Here L is the line number, and N is the number of sync pulses between two calls. Der
Wert N für die Wartezeit kann maximal 255 betragen, L sollte eine
gültige Zeilennummer sein, bei L=0 werden die automatischen Aufrufe
gestoppt. The value of N for the wait time can be a maximum of
255, L should be a valid line number at L = 0, the automatic calls
stopped. Das aufgerufene Unterprogramm muß mit RETURN enden und darf nicht länger dauern als die Zeit zwischen zwei Aufrufen. The called subroutine must end with RETURN and may not last longer than the time between two calls. Intern wird bei jedem Bildsynchronimpuls ein Zähler mit dem Wert N verglichen und bei Gleichheit ein Flag gesetzt. Internally each sync pulse, a counter with a value of N is compared and in case of equality, a flag is set. Im BASIC-Interpreter wird dann vor der Ausführung jedes Statements dieses Flag überprüft und falls es gesetzt ist ein GOSUB zur angegebenen Zeilennummer "eingeschoben". The BASIC interpreter is then before the execution of each statement this flag is checked and if it is set a GOSUB to the specified line number "pushed". Im
Videomode 7 kann es dabei durchaus sein, dass der Treiber die Zeit
nicht weiterzählt und angegebene Zeile nie aufgerufen wird. In video mode 7, it may be that the driver stops counting and the time specified line is never called. Das hängt aber von der konkreten Treiberimplementation ab. But this depends on the particular driver implementation. 01 ONSYNC 5,50 01 ONSYNC 5.50
02 ? 02? "Border:";A, "Border"; A
03 GOTO 2 03 GOTO 2
04 04
05 A=A+1:IF A=8 THEN A=0 05 A = A +1: IF A = 8 THEN A = 0
06 BORDER A:RETURN 06 BORDER A: RETURN
| Dieses Programm ändert alle Sekunde die Randfarbe, während der aktuelle Border-Wert ständig als Text ausgegeben wird. This program can change the border color every second, while the current Border value is output as text constantly.
8 Fehlermeldungen und Errorhandling 8 Error messages and error handling
8.1 ONERR N 8.1 N ONERR Liegt N im Bereich der gültigen Zeilen (1...95), wird bei einem Fehler in diese Zeile gesprungen. N is in the range of valid lines (1 .. 95), is bound for an error in this line. Andernfalls wird dann (wie gewohnt) mit einer Fehlermeldung abgebrochen. If it is canceled (as usual) with an error message. Befinden sich an und hinter der angegebenen Zeile keine Befehle mehr, wird das Programm ohne Fehlermeldung verlassen. Located at and behind the specified line no more commands will exit without error message. Wenn
mittels GOSUB eine Subroutine in einem anderen Programm aufgerufen
wird, wird im Fehlerfall dort in die angegebene Zeile gesprungen. If a subroutine is called by GOSUB in another program, in case of error there jump to the specified line. 01 ONERR 10 01 ONERR 10
02 A=SQR(-1) 02 A = SQR (-1)
10 DATA 512,7,1,"Error!",0 10 DATA 512,7,1, "Error", 0
11 ALERT 512 11 ALERT 512
12 END 12 END
| Da
versucht wird, die Wurzel aus einer negativen Zahl zu ziehen, springt
das Programm in Zeile 10 und zeigt dort eine Alertbox an. Efforts will be made to pull the root of a negative number, the program jumps to line 10, and then displays an alert box on.
8.2 ERR(n) 8.2 ERR (s) Über diese Funktion können Informationen über den aufgetretenen Fehler ausgelesen werden. This function allows information about the error that occurred can be read. Das funktioniert natürlich nur, wenn vorher mit ONERR eine eigene Fehlerroutine angesprungen wurde. This only works when previously with ONERR own error routine was called. Für n=1 wird die Zeile zurückgegeben, in der der Fehler aufgetreten ist, für n=2 das Statement. For n = 1, the line is returned, where the error has occurred, for n = 2 the statement. Für alle anderen Werte von n wird die Fehlernummer zurückgegeben. For all other values of n, the error number is returned. 01 ONERR 10 01 ONERR 10
02 A=SQR(-1) 02 A = SQR (-1)
10 DATA 512,7,1,"Error ",0 10 DATA 512,7,1, "Error", 0
11 ? 11? #3@2,8;ERR(0); # 3 @ 2.8; ERR (0);
12 ALERT 512 12 ALERT 512
13 END 13 END
| Da versucht wird, die Wurzel aus einer negativen Zahl zu ziehen, gibt es wieder eine Alertbox. Efforts will be made to pull the root of a negative number, there is again an alert box. In Zeile 11 wird die Fehlernummer in das Array geschrieben und nun mit angezeigt. In line 11, the error number is written to the array, and now displayed.
8.3 Fehlermeldungen 8.3 Error Messages Insgesamt gibt es 37 verschiedene Fehlermeldungen. In total there are 37 different error messages. Im Editor werden diese oben in der zweiten Zeile mit Programm-, Zeilen- und Statementnummer angezeigt. In this editor appear at the top of the second row with the program, line and statement number. Im
Allgemeinen lässt sich damit der Fehler recht schnell finden, manchmal
kann er sich auch am Ende der vorherigen Zeile befinden. In general, can thus find the error very quickly, sometimes it can also be located at the end of the previous line.
| 01 01 | BREAK BREAK | Das Programm wurde mit der Tastenkombination Control (Strg) + C abgebrochen. The program stopped with the key combination Control (Ctrl) + C. | | 02 02 | OVERFLOW OVERFLOW | Bei einer Rechenoperation liegt das Ergebnis ausserhalb der Grenzen von -32767...32767 For an arithmetic operation is the result beyond the limits of -32767 ... 32767 | | 03 03 | DIVIDE/0 DIVIDE / 0 | Es wurde versucht, durch Null zu dividieren An attempt was made to divide by zero | | 04 04 | SQR FROM <0 SQR FROM <0 | Es wurde versucht, die Quadratwurzel aus einer negativen Zahl zu ziehen An attempt was made to draw the square root of a negative number | | 05 05 | CONSTANT TOO BIG CONSTANT TOO BIG | Die angegebene Zahl liegt das Ergebnis ausserhalb der Grenzen von -32767...32767 The figure given is the result beyond the limits of -32767 ... 32767 | | 06 06 | WRONG EXPRESSION WRONG EXPRESSION | In der Formel befinden sich syntaktische Fehler In the formula, there are syntactical errors | | 07 07 | SYNTAX ERROR SYNTAX ERROR | Fehlende Parameter, ungültige Zeichen Missing parameters, invalid characters | | 08 08 | UNKNOWN KEYWORD UNKNOWN KEYWORD | Unbekanntes Schlüsselwort, der Programmcode enthält ungültige Bytes Unknown keyword, the program code contains invalid bytes | | 09 09 | WRONG FORMAT WRONG FORMAT | Die Zahlenformatierung ist ungültig (mehr Nachkommastellen als sichtbare) The number format is invalid (more decimal places than visible) | | 10 10 | BAD LINENUMBER BAD LINE NUMBER | Die Zeile mit der angegebenen Zeilennummer existiert nicht The line with the specified line number does not exist | | 11 11 | NEXT W/O FOR NEXT W / O FOR | Zu diesem NEXT Statement gibt es kein korrespondierendes FOR To this statement there is no corresponding NEXT FOR | | 12 12 | RETURN W/O GOSUB RETURN W / O GOSUB | Zu diesem RETURN Statement gibt es kein korrespondierendes GOSUB RETURN to this statement, there are no corresponding GOSUB | | 13 13 | STACK OVERFLOW STACK OVERFLOW | Insgesamt
dürfen nur 16 FOR/GOSUB/REPEAT zu gleichen Zeit "geöffnet" sein,
Ursache kann zB ein rekursiver Unterprogrammaufruf sein. In total, only 16 FOR / GOSUB / REPEAT be "open" to the same time, the cause may be, for example, a recursive subroutine call. | | 14 14 | UNTIL W/O REPEAT UNTIL W / REPEAT | Zu diesem UNTIL Statement gibt es kein korrespondierendes REPEAT To this statement there is no corresponding UNTIL REPEAT | | 15 15 | I2C ERROR I2C ERROR | An
der angegebenen Adresse meldet sich kein Gerät oder es meldet keine
Bereitschaft, serielle EEPROMs können zB mit dem Schreiben von Daten
beschäftigt sein. At the given address logs it reports no device or no willingness serial EEPROMs can be employed as with the write data. | | 16 16 | UNKNOWN ERROR UNKNOWN ERROR | unbekannter Fehler. unknown error. Leider
lassen sich alle möglichen Kombinationen von Befehlen, Funktionen und
Parametern nicht so einfach vollständig testen und es wäre schön, wenn
Sie den Fehler melden würden. Unfortunately, all possible
combinations of commands, functions and parameters are not as easy to
test completely and it would be nice if you could report the problem. | | 17 17 | DFLASH ERROR DFLASH ERROR | Kein Dataflash angeschlossen oder der Baustein reagiert nicht. No DataFlash connected or the device does not respond. | | 18 18 | OUT OF ARRAY OUT OF ARRAY | Es wurde versucht auf ein Arrayelement zuzugreifen, welches nicht existiert. An attempt was made to access an array element that does not exist. Der Fehler tritt auch auf, wenn bei BCOPY der Platz im Array nicht ausreicht. The error also occurs when at bcopy of space in the array is not sufficient. | | 19 19 | INCOMPLETE PAR INCOMPLETE PAR | Es wurden zuwenige Parameter für den Befehl angegeben There were too few parameters for the specified command | | 20 20 | KEYWORD IS MISSING KEYWORD IS MISSING | Das angegebene Statement beginnt nicht mit einem Schlüsselwort sondern zB mit einer Zahl The specified statement does not begin with a keyword but as with a number | | 21 21 | WRONG BCOPY WRONG bcopy | Der Kopiermodus liegt nicht im Bereich (1...6) The copy mode is not in range (1 .. 6) | | 22 22 | OUT OF SCREEN OUT OF SCREEN | Versuch, ausserhalb des Bildschirmbereiches zu zeichnen (nicht implementiert) Attempt to draw outside the screen area (not implemented) | | 23 23 | CANNOT CREATE FILE CAN NOT CREATE FILE | Das File existiert bereits oder die Filenummer liegt ausserhalb des gültigen Bereiches The file already exists, or the file number is outside the valid range | | 24 24 | DFLASH FULL DFLASH FULL | Das File kann nicht erstellt werden, da der Platz auf dem Dataflash nicht ausreicht. The file can not be created because the space on the Data Flash is not sufficient. | | 25 25 | FILE NOT FOUND FILE NOT FOUND | Das File existiert nicht (ist frei) The file does not exist (is free) | | 26 26 | PAGE NOT IN FILE PAGE NOT IN FILE | Die zu lesende/schreibende Page existiert nicht in diesem File To be read / write Page does not exist in this file | | 27 27 | PAGES NOT IN RANGE PAGES NOT IN RANGE | Es können nur Files mit 1...128 Pages erzeugt werden Only files with 1 .. 128 Pages can be created | | 28 28 | NOT IN GRAPHICS MODE NOT IN GRAPHICS MODE | Der angegebene Befehl kann nicht im Grafikmode (VMODE 1...3/5) ausgeführt werden The specified command can not be run in graphics mode (VMODE 1 .. 3/5) | | 29 29 | NOT IN TEXT MODE NOT IN TEXT MODE | Der angegebene Befehl kann nicht im Textmode (VMODE 0) ausgeführt werden The specified command can not be run in text mode (VMODE 0) | | 30 30 | NO USR FILE USR NO FILE | Es können nur Files vom Typ USR gelesen/geschrieben werden (obsolete) It can be written only files of type USR Read / (obsolete) | | 31 31 | SRC OUT OF SCREEN SRC OUT OF SCREEN | Der Quellblock bei BCOPY befindet sich nicht vollständig im Bildbereich The source block in bcopy is not completely within the image area | | 32 32 | DEST OUT OF SCREEN LEAST OUT OF SCREEN | Der Zielblock bei BCOPY befindet sich nicht vollständig im Bildbereich The target block in bcopy is not completely within the image area | | 33 33 | WRONG SPRITE WRONG SPRITE | Die Sprite-Definition hat einen Fehler (zB größer als 8x8 Zeichen) The Sprite definition has an error (eg, larger than 8x8 characters) | | 34 34 | WRONG EEPROM ADR WRONG EEPROM ADR | Es wurde versucht, auf eine interne EEPROM-Zelle >1999 zuzugreifen An attempt was made to access an internal EEPROM cell> 1999 | | 35 35 | NO PRG FILE NO PRG FILE | Es wurde versucht, mit LOADP ein Nicht-Programm-Datei zu laden An attempt was made to load LOADP with a non-program file | | 36 36 | XMODEM ERROR XMODEM ERROR | Beim X-Modem Empfang ist ein (Prüfsummen-) Fehler aufgetreten When X is a receiving modem (checksum) error occurred | | 37 37 | CANT LOAD THIS THIS CAN NOT LOAD | Es wurde versucht, das gerade laufende Programm mit LOADP zu überschreiben An attempt was made to override the currently running program with LOADP | | 38 38 | IO DISABLED IO DISABLED | Ausgabe auf den Parallelport wurde durch einen Treiber auf Programmplatz 8 deaktiviert Output to the parallel port has been disabled by a driver program to 8th place | | 39 39 | SERIAL1 NOT AVAILABLE SERIAL1 NOT AVAILABLE | es
wurde versucht, auf die zweite serielle Schnittstelle zuzugreifen,
Controllertyp ist aber ein Mega644 oder Input-Pin der seriellen
System-Schnittstelle liegt an PD3 it was trying to access the
second serial port, type of controller but is a Mega644 or input pin of
the serial system interface is on PD3 | | 40 40 | NO IO DRIVER IO NO DRIVER | es wurde versucht, mittels IN/OUT auf eine nicht existierende Adresse ab 0x0800 zuzugreifen there was an attempt by the IN / OUT access a non-existent address from 0x0800 |
created with latex2web.pl v0.62 © 2006-2011 Joerg Wolfram Created with latex2web.pl v0.62 © 2006-2011 Joerg tungsten |