Skip to content

plusBASIC Error Messages

Sean P. Harrington edited this page Oct 22, 2024 · 17 revisions

This page is work in progress

See also : ERR Pseudo-Variable

Below are the various error messages one may encounter from plusBASIC:

  • Syntax error -- the command you entered was not recognized by the system, or the structure of the command parameters was incorrect/incomplete.

  • File not found error -- the path or file was not present on the SD card. In some cases this error will be returned if the SD card itself is not present.

  • Illegal Quantity -- The value of an expression or the content of a string were invalid for the called function or statement.

  • No disk error -- There is no SD Card present in the system.

  • Duplicate Definition error -- Attempt to dimension an array variable that has already been dimensioned.

  • Out of memory error -- There wasn't enough available memory to allocate the requested amount.

  • Overflow error -- The calculation generated a result too large to be represented by the floating-point variable.

  • Undefined line number error -- The plusBASIC interpreter encountered an out of sequence line number:

    • Line numbers must be in order:
      • ✅ 100, 110, 111, 200, 251
      • 🚫 300, 150, 500, 20
    • Line numbers may be contiguous OR discontiguous:
      • ✅ 100, 101, 102, 103
      • ✅ 100, 257, 3001, 8699
    • Line numbers must always increase:
      • ✅ 100, 200, 500, 700
      • 🚫 300, 299, 298, 297
    • Line numbers may not be duplicated:
      • 🚫 100, 110, 120, 110, 500, 120

ERRNF   equ     $00   ;  1 NF NEXT without FOR
ERRSN   equ     $02   ;  2 SN Syntax error
ERRRG   equ     $04   ;  3 RG RETURN without GOSUB
ERROD   equ     $06   ;  4 OD Out of DATA
ERRFC   equ     $08   ;  5 FC Function Call error
ERROV   equ     $0A   ;  6 OV Overflow
ERROM   equ     $0C   ;  7 OM Out of Memory
ERRUS   equ     $0E   ;  8 UL Undefined Line number (Undefined Statement)
ERRBS   equ     $10   ;  9 BS Bad Subscript
ERRDD   equ     $12   ; 10 DD Re-DIMensioned array (Duplicate Definition)
ERRDZ   equ     $14   ; 11 /0 Division by Zero 
ERRID   equ     $16   ; 12 ID Illegal direct
ERRTM   equ     $18   ; 13 TM Type mismatch
ERROS   equ     $1A   ; 14 OS Out of String space
ERRLS   equ     $1C   ; 15 LS String too Long
ERRST   equ     $1E   ; 16 WT String formula too complex
ERRCN   equ     $20   ; 17 CN Cant CONTinue
ERRUF   equ     $22   ; 18 UF UnDEFined FN function
ERRMO   equ     $24   ; 19 MO Missing operand
; plusBASIC errors        
ERRNR   equ     $26   ; 20 No RESUME             
ERRRE   equ     $28   ; 21 RESUME without error
ERRUE   equ     $2A   ; 22 Unprintable error
ERRLBO  equ     $2C   ; 23 Line buffer overflow
ERRGS   equ     $2E   ; 24 Statement not implemented
ERRUL   equ     $30   ; 25 Undefined label
ERRAG   equ     $32   ; 26 ARG without GOSUB
ERRUD   equ     $34   ; 27 Undimensioned array
ERRTO   equ     $36   ; 28 Too many operands
ERRIM   equ     $38   ; 29 Invalid mode
ERRBR   equ     $3A   ; 30 Bad range
NONDSK  equ     $3C   ; 31 Last non disk error
; Disk errors
DSKERRS equ     $60   ; Start of Disk Errors
ERRBDF  equ     $60   ; 49 Bad File
ERRFNF  equ     $62   ; 50 File / directory not found         
ERRTMF  equ     $64   ; 51 Too many open files / directories  
ERRIPR  equ     $66   ; 52 Invalid parameter                
ERRRPE  equ     $68   ; 53 End of file / directory            
ERRFAE  equ     $6A   ; 54 File already exists                
ERRIOE  equ     $6C   ; 55 Other error                        
ERRNOD  equ     $7E   ; 56 No disk                            
ERRNEM  equ     $70   ; 57 Not empty                          
LSTERR  equ     $72   ; 58 Last error used for range checks

; Long Error Descriptions
err_messages:
MSGNF:  byte    "NEXT without FOR",0            ; 1
MSGSN:  byte    "Syntax",0                      ; 2
MSGRG:  byte    "RETURN without GOSUB",0        ; 3
MSGOD:  byte    "Out of DATA",0                 ; 4
MSGFC:  byte    "Illegal Quantity",0            ; 5
MSGOV:  byte    "Overflow",0                    ; 6
MSGOM:  byte    "Out of memory",0               ; 7
MSGUS:  byte    "Undefined line number",0       ; 8
MSGBS:  byte    "Subscript out of range",0      ; 9
MSGDD:  byte    "Duplicate Definition",0        ; 10
MSGDV0: byte    "Division by zero",0            ; 11
MSGID:  byte    "Illegal direct",0              ; 12
MSGTM:  byte    "Type mismatch",0               ; 13
MSGSO:  byte    "Out of string space",0         ; 14
MSGLS:  byte    "String too long",0             ; 15
MSGST:  byte    "String formula too complex",0  ; 16
MSGCN:  byte    "Can't continue",0              ; 17
MSGUF:  byte    "Undefined user function",0     ; 18
MSGMO:  byte    "Missing operand",0             ; 19
; Errors from CP/M BASIC                        
MSGNR:  byte    "No RESUME",0                   ; 20
MSGRE:  byte    "RESUME without GOSUB",0        ; 21
MSGUE:  byte    "Unprintable",0                 ; 22
MSGLBO: byte    "Line buffer overflow",0        ; 23      
MSGGS:  byte    "Statement not implemented",0   ; 24
MSGUL:  byte    "Undefined line label",0        ; 25
MSGAG:  byte    "ARGS without GOSUB",0          ; 26
; plusBASIC errors
MSGUD:  byte    "Undimensioned Array",0         ; 27 
MSGTO:  byte    "Too many operands",0           ; 28
MSGIM:  byte    "Invalid mode",0                ; 29
MSGBR:  byte    "Bad range",0                   ; 30
        byte    0                               ; 31  Last non disk error                             

; File System Errors                            ;     ESP32 Error
doserr_messages:
MSGBDF: byte    "Bad file",0                    ; 49  Bad File
MSGFNF: byte    "File not found",0              ; 50  -1: File / directory not found         
MSGTMF: byte    "Too many files",0              ; 51  -2: Too many open files / directories  
MSGIPR: byte    "Invalid parameter",0           ; 52  -3: Invalid parameter                
MSGRPE: byte    "Input past end",0              ; 53  -4: End of file / directory            
MSGFAE: byte    "File already exists",0         ; 54  -5: File already exists                
MSGIOE: byte    "Disk I/O",0                    ; 55  -6: Other error                        
MSGNOD: byte    "No disk",0                     ; 56  -7: No disk                             
MSGNEM: byte    "Not empty",0                   ; 57  -8: Not empty                           
Clone this wiki locally