[<<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