[<<Previous Entry]
[^^Up^^]
[Next Entry>>]
[Menu]
[About The Guide]
Undocumented Error Messages
-----------------------------------------------------------------
Q: When I run my program, I keep getting error #318!
Where the hell does it say anything about error #318?
A: Well, nowhere, until now. Here's what you need to know
about FORCE error messages:
When you get a FORCE run-time error, use the perror program to
get a quick description of the error.
All run-time errors with a number less than 256 are DOS error
Messages. For example, error #6 should be "invalide handle"
under ANY DOS compiler (one would hope). Therefore, if you have
a good DOS reference, check out the DOS error messages and what
they mean. If not, I'm providing a quick reference for DOS
error Messages that FORCE knows about below.
Error 1 Invalid DOS function.
Error 2 File not found.
Error 3 Path not found.
Error 4 Too many files open.
Error 5 Access denied.
Error 6 Invalid handle.
Error 7 Memory control blocks destroyed.
Error 8 Insufficient memory.
Error 9 Memory block address invalid.
Error 10 Invalid environment.
Error 11 Invalid format.
Error 12 Invalid access code.
Error 13 Invalid data.
Error 14 Invalid drive.
Error 15 Attempt to remove the current directory.
Error 16 Not the same device.
Error 17 No more files.
Error 18 Disk is write protected.
Error 19 Bad disk unit.
Error 20 Drive is not ready.
Error 21 Invalid disk command.
Error 22 CRC error.
Error 23 Invalid length.
Error 24 Seek error.
Error 25 Not an msdos disk.
Error 26 Sector not found.
Error 27 Out of paper.
Error 28 Write fault.
Error 29 Read fault.
Error 30 General failure.
Error 31 Sharing violation.
Error 32 Lock violation.
Error 33 Wrong disk.
Error 34 FCB unavailable.
The FORCE manual lists several error numbers that say things like
"Internal error: Please contact Technical Support." Here's what
they really mean:
Error 263: Call back table full
Usually happens on a QUIT command, as FORCE calls back all
the functions that opened files and indexes and databases.
If you get this error, reduce the number of files and
indexes and databases that you have open when the QUIT
command is executed.
Error 318: Run Installed a TSR Program
This one isn't even in the manual, but it's message is
pretty self-explanatory. You must have executed RUN
command that installed a TSR (like the dos PRINT program,
for example).
The following compile-time errors (all in the 7000 level) are caused
by bugs in the compiler. You shouldn't see these very often.
(we hope).
Error 7000: Set Internal SEGMENT block
If you get this error, you probably have too many functions
in one module. Split them up into different modules until
you no longer get this error.
Error 7005: Invalide Opcode table
People used to get this error when FORCE was VERY new, and
was generating opcodes that the computer doesn't understand.
The solution at the time was to get a newer version of
FORCE, which fixed the problem. You just shouldn't get this
error any more, and if you do "please contact technical
support."
Error 7010: Register not deallocated
This error occurs when FORCE wants to use a register, say,
CX, but is already using it for something else. Go figure.
This error usually happens when you're doing some
expression like
x = abs( (3 * &PI/4) * x**(z/q0) ) * x + 42 * y.
If that's the case, then break up the expression into
smaller parts until you no longer get this error.
Error 7015: Stack not cleaned up properly
This error happens if FORCE decides not to clean up the
stack. Like error #7005, you just shouldn't get this one.
Error 7020: Too many sub-modules
What it really means is that you have too many nested
#include statements. Figure out a different way to
#include your headers. One way to do it is:
**--
**-- JimBob.hdr -- Stuff I need
**--
#ifndef JIMBOB_HDR
#define JIMBOB_HDR
#define FALSE .f.
#define TRUE .t.
#define PI 3.14159256358
#endif && JIMBOB_HDR
which will make sure that your include files don't get
multiply #include'd.
Error 7025: Segment Full
This could be either your global data segment, or any code
segment. Your global data segment has things like your
global VARDEF, any DBFDEF, INDEXDEF, and LABELDEF's.
Pretty much any data that resides outside of a function is
put in the global data segment. If you think that your
data segment is full, then try to use more local variables.
Each procedure gets its own CODE segment, so you'd have to
have something like a 10,000 line procedure to fill it up.
If this is the case, I hope you recover soon. The obvious
solution is to split up your 10,000 line procedure into
other procedures (this is known as divide and conquer, for
you novice programmers with 10,000 line procedures out there).
Error 7030: Expression Stack
This happens when you have an expression that is just too
complex for FORCE to swallow all at once. Break it up into
smaller parts.
There are two more 'Internal' errors that I haven't covered,
but I'll try to get to them in the next edition of the FAQ.
See Also:
General
Miscellaneous
Third_party
Optimizing/debugging
Other_linkers/compilers
TSR_bloat
This page created by ng2html v1.05, the Norton guide to HTML conversion utility.
Written by Dave Pearson