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


10 SCROLL 2 10 SCROLL 2
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.
10 WA 10 10 WA 10
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.
10 SYNC 300 10 SYNC 300
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.
10 TSET 0 10 TSET 0
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.
10 TGET Z 10 TGET Z
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