0 DIM ERNUM$(5),ERFILE$(12),XA$(100)›1 TRAP 32500:REM TO ERROR REPORT ROUTINE›2 REM *** ERROR REPORT SYSTEM by›3 REM *** LEN LINDSAY (C) 1980›4 REM YOUR PROGRAM GOES HERE›5 REM SET VARIABLE LINK TO THE BEGINNING›6 REM BEGINNING LINE OF YOUR MODULES›7 REM NEEDS A DISKETTE IN DRIVE 1›8 REM WITH THE ERROR FILES CREATED WITH›9 REM THE ERROR FILE WRITING PROGRAM›10 REM THANK YOU TO COMPUTE,IRIDIS,ANDATARI FOR INFO USED IN THIS ROUTINE›32500 ERLINE=256*PEEK(187)+PEEK(186):ERNUM$=STR$(PEEK(195)):REM ERROR REPORT SYSTEM›32501 REM *** NEEDS: DIM ERNUM$(5)›32502 REM *** DIM ERFILE$(12)›32503 REM *** DIM XA$(100)›32504 REM *** USES SUBROUTINE 32600 TO FIND NEXT LINE›32510 PRINT "ýERROR NUMBER ";ERNUM$;" IN LINE ";ERLINE›32520 ERFILE$="D:ERROR"›32530 ERFILE$(LEN(ERFILE$)+1)=ERNUM$›32540 TRAP 32560›32550 OPEN #5,4,0,ERFILE$:GOTO 32570›32560 PRINT "ERROR NUMBER ";ERNUM$;" IS NOT ON FILE":GOTO 32580›32570 INPUT #5,XA$:PRINT XA$:CLOSE #5›32580 GOSUB 32600:TRAP 32500›32581 PRINT " SHALL I :"›32582 PRINT " STOP"›32583 PRINT " OR "›32584 PRINT " CONTINUE WITH :"›32585 PRINT " ERROR LINE ";ERLINE›32586 PRINT " NEXT LINE ";NXLINE›32587 PRINT " LINK LINE ";LINK›32588 PRINT " WHICH CHOICE";:INPUT XA$›32589 PRINT "}":REM CLEAR SCREEN›32590 IF AX$="S" THEN TRAP 34567:STOP ›32591 IF AX$="E" THEN GOTO ERLINE›32592 IF XA$="N" THEN GOTO NXLINE›32593 IF XA$="L" THEN GOTO LINK›32599 GOTO 32581:REM INVALID RESPONSE›32600 NXLINE=0:REM FIND NEXT LINE NUMBER›32601 REM *** ERLINE IS INPUT TO THIS ROUTINE AS THE LINE NUMBER›32602 REM *** NXLINE IS RETURNED AS THE NEXT LINE NUMBER›32605 REM *** BASED ON COMPUTE #4 PAGE 32 PROGRAM LISTING›32610 ADDRESS=PEEK(136)+PEEK(137)*256:REM GET THE FIRST LINE NUMBER›32620 LINE=PEEK(ADDRESS)+PEEK(ADDRESS+1)*256›32630 IF NXLINE=1 THEN NXLINE=LINE:GOTO 32699›32640 IF LINE=ERLINE THEN NXLINE=1›32650 ADDRESS=ADDRESS+PEEK(ADDRESS+2)›32660 GOTO 32620›32699 RETURN ›