==== <code>YPOS</code> ====
: Returns the current vertical (y) position of the graphics cursor.
==== <code>Error codes </code> ====
# '''Unexpected NEXT''' - <code>NEXT</code> encountered without matching <code>FOR</code>.
# '''Syntax Error''' - Typing error or incorrect punctuation.
# '''Unexpected RETURN''' - <code>RETURN</code> encountered when there was no active <code>GOSUB</code>.
# '''DATA exhaused''' - Trying to <code>READ</code> data when data pointer has reached end of data.
# '''Improper argument''' - The argument for a function is not legal (e.g. <code>PRINT SQR(-10)</code>).
# '''Overflow''' - The computer cannot handle integers smaller than -32768 (signed) or larger than 65535 (unsigned) or floating point numbers greater than ±1.7E38.
# '''Memory full''' - Not enough free RAM available to complete the operation. Program too big or control structures too deeply nested.
# '''Line does not exist''' - Attempt to <code>RUN</code>, <code>GOTO</code> or <code>GOSUB</code> a non-existent line number.
# '''Subscript out of range''' - Value of a subscript in an array is outside of range specified by <code>DIM</code> declaration or wrong number of dimensions supplied.
# '''Array already dimensioned''' - Arrays can only be <code>DIM</code>ensioned once within a program.
# '''Division by zero''' - Trying to divide a number by zero.
# '''Invalid direct command''' - Using a statement as a direct command which is not allowed outside a program, e.g. <code>DEF FN</code>.
# '''Type mismatch''' - Wrong data type encountered, string data instead of numeric value or vice versa.
# '''String space full''' - String memory area is full.
# '''String too long''' - String may not exceed 256 characters.
# '''String expression too complex''' - A string expression needs to be broken down into smaller expressions.
# '''Cannot CONTinue''' - <code>CONT</code> can only be used if program was stopped by [ESC] or a <code>STOP</code> in program - not after END. If the program is modified before issuing <code>CONT</code> you will also get this error.
# '''Unknown user function''' - A <code>DEF FN</code> must be executed before calling an <code>FN</code> function.
# '''RESUME missing''' - End of program has been reached while in error processing mode. Use <code>ON ERROR GOTO</code> before <code>RESUME</code>.
# '''Unexpected RESUME''' - <code>RESUME</code> is only used in error processing mode, <code>ON ERROR GOTO</code> statement must be used first.
# '''Direct Command found''' - A line without a line number has found while loading a file.
# '''Operand missing''' - An incomplete expression has been found.
# '''Line too long''' - The line contains too many statements.
# '''EOF met''' - Trying to input data beyond end of data file.
# '''FILE type error''' - Using a program file instead of a data file to read or write (or vice versa).
# '''NEXT missing''' - The <code>NEXT</code> of a <code>FOR</code> ... <code>NEXT</code> loop is missing.
# '''File already open''' - Trying to open an open file. Use <code>CLOSEIN</code> or <code>CLOSEOUT</code> first.
# '''Unknown command''' - Given when an unknown command follows a <code>|</code>. e.g. <code>|DISC</code> on a CPC464 without AMSDOS installed.
# '''WEND missing''' - The <code>WEND</code> part of the <code>WHILE</code> ... <code>WEND</code> loop is missing.
# '''Unexpected WEND''' - <code>WEND</code> encountered without a corresponding active <code>WHILE</code>.
# '''File not open''' - Attempting to read from or write to a file without <code>OPEN</code>ing it first.
# '''Broken in''' - During handling with files (read, write, change etc.) different problems could appear. BASIC reacts with Error code 32 due to it. You have to mask the DERR code with AND &7F (mask Bit 7) and compare the result with the following table to get explained what happened:
:Decimal (binary) number:
*14 (0000 1110) Stream in an unclear condition
*15 (0000 1111) reached End of File (hard eof
*16 (0001 0000) > unknown command or filename
*17 (0001 0001) > there's already a file existing with the same name
*18 (0001 0010) > there's no file with that name
*19 (0001 0011) > full directory20 (0001 0100) > full disc
*21 (0001 0101) > disc was removed during reading
*22 (0001 0110) > only readable
*26 (0001 1010) > reached End of File (soft end)
:Does AMSDOS has already given out a failure then Bit 7 will be set. That means add 128 decimal to DERR code.
* '''Unknown error''' - Executing <code>ERROR</code> command with any other legal error code number (up to 255).
== Other Basic Dialects available for the CPC ==