' *****************************************************************************
' *                     DOORPCH.END Version 3.8 for Doors                     *
' *                    By Raymond Clements, Clint Labarthe                    *
' *                Terry Shockley, Harold Thomson & Ben Perron                *
' *      Copyright (C), 1987, 1988, 1989, 1990, 1991 All Rights Reserved      *
' *              This logic begins at line number (label) 10000.              *
' *                                                                           *
' *             It MUST be "$INCLUDEd" at the END of your program.            *
' *****************************************************************************

ERR.ROUTINE:
10000 SELECT CASE ERR
             CASE IS=53
                  IF ERREXP%=53 THEN
                     CALL OUT.PUT
                     ERREXP%=1
                     RESUME NEXT
                  END IF
                  LN$="File not found."
             CASE IS=54
                  LN$="Bad file mode or file not open."
             CASE IS=57
                  IF ERREXP%=57 THEN
                     IF ERRCNT%<10 THEN
                        ERRCNT%=ERRCNT%+1
                        ERREXP%=1
                        RESUME NEXT
                     END IF
                  END IF
                  LN$="Comm Port I/O Error."
             CASE IS=61
                  LN$="Disk is full!"
             CASE IS=62
                  LN$="Input past end of file."
             CASE IS=63
                  IF ERREXP%=70 THEN
                     IF ERRCNT%<50 THEN
                        ERRCNT%=ERRCNT%+1
                        D.TIME#=3: CALL DELAY.TIME(D.TIME#)
                        RESUME
                     END IF
                  END IF
                  LN$="Bad record number."
             CASE IS=64
                  LN$="Bad file name specified."
             CASE IS=70
                  IF ERREXP%=70 THEN
                     IF ERRCNT%<50 THEN
                        ERRCNT%=ERRCNT%+1
                        D.TIME#=3: CALL DELAY.TIME(D.TIME#)
                        RESUME
                     END IF
                  END IF
                  LN$="Permission denied."
             CASE IS=75
                  LN$="Path/File access error."
             CASE IS=76
                  LN$="Path not found."
             CASE ELSE
                  LN$="Unknown error."
      END SELECT
      GOSUB 10025
      LN$="Please notify SysOp: Program failure in Main Module of "+PROGNAME$+".": GOSUB 10025
      LN$="Error #"+STR$(ERR)+" in line"+STR$(ERL)+".": GOSUB 10025
      ERREXP%=ERR
      ERRCNT%=-1
10020 CALL EXITG
10025 IF COMPRTOPN%<>1 THEN
         PRINT LN$
         LN$=""
      ELSE
         CALL OUT.PUT
      END IF
      RETURN
'
'If your programs require these lines then remove the "'"s.
'
'10170 CALL OUT.PUT
'      RETURN
'10185 CALL CLR.SCRN
'      RETURN
'10200 CALL OUT.NCR
'      RETURN
'10230 CALL IN.PUT
'      RETURN
'10235 CALL GET.KEY
'      RETURN
'10400 'Return to PCBoard
'10410 CALL EXITG
'10450 CALL SCRN.POS
'      RETURN
'10500 CALL MUSICG
'      RETURN
'SET.COLORS:
'      CALL SET.COLORS
'      RETURN
'BLNKRED:
'      BLINK%=1
'RED:
'      FGC%=1
'      RETURN
'BLNKGREEN:
'      BLINK%=1
'GREEN:
'      FGC%=2
'      RETURN
'BLNKYELLOW:
'      BLINK%=1
'YELLOW:
'      HIGH%=1
'      FGC%=3
'      RETURN
'BLNKBLUE:
'      BLINK%=1
'BLUE:
'      FGC%=4
'      RETURN
'BLNKMAGENTA:
'      BLINK%=1
'MAGENTA:
'      FGC%=5
'      RETURN
'BLNKCYAN:
'      BLINK%=1
'CYAN:
'      FGC%=6
'      RETURN
'BLNKWHITE:
'      BLINK%=1
'WHITE:
'      FGC%=7
'      RETURN
'REDWHT:
'      FGC%=1
'      BGC%=7
'      HIGH%=0
'      RETURN
'BLKWHT:
'      FGC%=0
'      BGC%=7
'      RETURN
