10 REM *** PROGRAM WHICH READS A BASIC STATEMENT FROM THE USER UNDER PROGRAM CONTROL ›20 REM *** DIMENSION STRING TO HOLD A BASIC STATEMENT WHICH WILL APPEAR AT LINE 1000›30 DIM A$(113)›35 REM *** CLEAR SCREEN AND INPUT THE BASIC STATEMENT (OR IN YOUR CASE, THE EQUATION TO BE INTEGRATED)›37 REM ALSO, TRAP ANY ERRORS IN THE ENTERED DATA BY RETURNING TO THE INPUT STATEMENT ›40 ? CHR$(125);:POSITION 2,1:? "EQUATION";:TRAP 40:INPUT A$›50 REM *** CLEAR SCREEN AND MOVE CURSOR DOWN A FEW SPACES TO GET OUT OF THE WAY OF THE TEMPORARY "STOPPED AT LINE ›60 REM XX" MESSAGE WHICH WILL APPEAR (SEE BELOW FOR EXPLANATION) ›70 ? CHR$(125);:POSITION 2,4›80 REM *** PRINT THE LINE NUMBER (1000) AND THE BASIC STATEMENT (A$) TO BE ADDED TO THE PROGRAM. ›90 REM ALSO, PRINT SEVERAL BLANK LINES BELOW THE STATEMENT. THIS PREVENTS AN ERROR MESSAGE FROM BEING PRINTED ›100 REM OVER THE "CONT" COMMAND (SEE BELOW). IF THE ERROR MESSAGE TOOK THE PLACE OF "CONT", THE SCREEN ›110 REM EDITOR WOULD NEVER STOP READING THE SCREEN, PUTTING THE PROGRAM IN AN ENDLESS LOOP ›120 ? 1000;" ";A$:? :? :? :? :? ›130 REM *** PRINT THE BASIC "CONT" COMMAND ›140 ? "CONT"›150 REM *** PUT CURSOR AT TOP OF SCREEN ›160 POSITION 2,0›170 REM *** PUT THE SCREEN EDITOR INTO A SPECIAL MODE BY POKING LOCATION 842 ›180 REM *** THIS MODE READS TEXT FROM THE SCREEN WITHOUT WAITING FOR THE USER'S RETURN KEY. ›183 POKE 842,13›185 REM *** WHEN "STOP" EXECUTES, A BLANK LINE AND THE MESSAGE "STOPPED AT LINE XX" IS PRINTED. ›190 REM ALSO,"STOP" MEANS THAT BASIC GOES INTO IMMEDIATE MODE. IT CALLS THE SCREEN EDITOR AND ASKS FOR CHARACTERS ›195 STOP ›200 REM SINCE THE SCREEN EDITOR IS IN A SPECIAL MODE, IT WILL AUTOMATICALLY READ EACH OF THE LINES BELOW THE ›210 REM CURSOR AND SEND THEM TO BASIC. ›220 REM *** THE SCREEN EDITOR READS THE LINE NUMBER (1000) AND BASIC STATEMENT (A$) THAT WERE PREVIOUSLY PRINTED. ›230 REM *** NOTE: LINE 1000 HAD TO BE PLACED ON SCREEN LINE 4 BECAUSE THE MESSAGE "STOPPED AT LINE XX" MIGHT ›240 REM BE PRINTED OVER LINE 1000. ›250 REM ############################ ›260 REM *** THE SCREEN EDITOR SENDS THE STATEMENT TO THE BASIC INTERPRETER, WHERE IT IS MADE PART OF THE PROGRAM ›270 REM *** IF THE STATEMENT CONTAINED A SYNTAX ERROR, AN ERROR MESSAGE WOULD HAVE BEEN PRINTED ON THE SCREEN. ›280 REM WE LEFT A FEW LINES BETWEEN LINE 1000 AND THE "CONT" STATEMENT TO AVOID WRITING OVER "CONT" WITH ANY ›290 REM ERROR MESSAGES. ›300 REM *** IF AN ERROR OCCURS, THE PROGRAM WILL JUMP IMMEDIATELY TO THE INPUT STATEMENT WHICH ASKS FOR THE ›310 REM EQUATION (BECAUSE THIS IS WHERE THE TRAP WAS SET ABOVE). THE USER WILL THEN HAVE ANOTHER CHANCE TO ENTER ›320 REM THE CORRECT FORM OF THE EQUATION ›330 REM ############################ ›340 REM IF THE SYNTAX OF THE EQUATION WAS CORRECT, THE SCREEN EDITOR THEN READS THE "CONT" STATEMENT. ›350 REM THIS CAUSES THE BASIC INTERPRETER TO CONTINUE EXECUTING THIS PROGRAM ON THE NEXT LINE (LINE 400). ›360 REM LINE 400 PUTS THE SCREEN EDITOR BACK INTO NORMAL MODE (INPUT ONLY ACCEPTED WHEN FOLLOWED BY A RETURN) ›400 POKE 842,12›410 REM *** CLEAR THE SCREEN TO DESTROY THE EVIDENCE OF WHAT HAPPENED 420 ? CHR$(125); ›990 REM *** IF THE EQUATION HAD INCORRECT SYNTAX, THE ERROR RESULTING FROM TRYING TO EXECUTE THE STATEMENT: ›992 REM 1000 ERROR - XXXXXXXXXX ETC. WILL CAUSE THE PROGRAM TO JUMP TO THE INPUT STATEMENT (WHERE THE TRAP WAS ›993 REM SET ABOVE). ›995 REM *** IF YOU LIST THE PROGRAM AFTER RUNNING IT, THE STATEMENT OR EQUATION YOU ENTERED WILL BE AT LINE 1000 ›1010 REM *** RESET TRAP ›1020 TRAP 40000›