90 REM SUM INTEGERS FROM N1 TO N2 - TASK SLICING PROGRAM
100 SUM = 0:A1 = -16384:A2 = 128
110 IN$ = "INPUT ERROR- PRESS ANY KEY"
120 GOTO 250
130 FOR I = L1 TO N2:SUM = SUM +I: NEXT : RETURN : REM USE TO FINISH UP CALCULATION AFTER ALL INPUTS ENTERED
140 REM SUM SUBROUTINE WITH KEYBOARD PEEK
150 F = 0: REM KEYBOARD READ FLAG; =1 IF KEY IS PRESSED
160 FOR I = L1 TO N2
170 SUM = SUM +I
180 X = PEEK(A1)
190 IF X >A2 THEN L1 = I +1:I = N2:F = 1: POKE -16368,0
200 NEXT : IF F = 1 THEN RETURN : REM KEY WAS PRESSED
210 REM NO KEY WAS PRESSED. THUS, SUMMATION IS COMPLETE
220 L1 = N2 +1: IF M1 <1 THEN GET A$: PRINT A$:M1 = VAL(A$): POP : GOTO 320: REM ALL INTEGERS SUMMED. 1ST INPUT NOT ENTERED. NO KEY PRESSED. ENTER INPUT HERE.
230 IF M2 <1 AND JP = 2 THEN GET A$: PRINT A$:M2 = VAL(A$): POP : GOTO 410: REM 2ND INPUT MISSING. ENTER IT HERE.
240 RETURN
250 HOME : PRINT "THIS PROGRAM SUMS ALL INTEGERS FROM": PRINT "SMALLEST TO LARGEST USING A TASK": PRINT "SLICING ALGORITHM"
290 HOME : PRINT " *** DISPLAY FORMAT": PRINT : PRINT "1) SHOW SUM ONLY": PRINT "2) SHOW ALL PERTINENT INFO": PRINT : PRINT "ENTER 1 OR 2: ";
300 JP = 1: IF L1 < = N2 THEN GOSUB 140: REM CONTINUE SUMMATION IF L1<=N2. JP=1 SHOWS WAITING FOR FIRST INPUT
310 M1 = VAL( CHR$(X -A2))
320 IF M1 <1 OR M1 >2 THEN PRINT IN$: GET A$: PRINT A$: GOTO 290
330 : HOME : PRINT " *** END CALCULATION INDICATION ***": PRINT
340 PRINT "1) DO NOT RING BELL"
350 PRINT "2) RING BELL AT CONCLUSION OF SUM"
360 PRINT : PRINT "ENTER 1 OR 2:";
370 JP = 2: IF L1 >N2 THEN GET A$: PRINT A$:M2 = VAL(A$): GOTO 410: REM EXIT IF SUMMATION FINISHED. ELSE GO TO SUMMATION ROUTINE.
380 GOSUB 140
390 IF X <A2 THEN 360
400 M2 = VAL( CHR$(X -A2))
410 IF M2 <1 OR M2 >2 THEN PRINT IN$: GET A$: PRINT A$: GOTO 330
420 HOME : PRINT " *** INPUT CHECK ***"
430 A$ = "": PRINT : PRINT "THE FOLLOWING WAS REQUESTED:": PRINT
440 PRINT : PRINT " SUM INTEGERS FROM ";N1" TO "N2: PRINT : ON M1 = 2 GOTO 450: PRINT " SHOW SUM ONLY": PRINT : GOTO 460
450 PRINT " SHOW ALL PERTINENT INFO": PRINT
460 ON M2 = 2 GOTO 470: PRINT " DO NOT RING BELL": GOTO 480
470 PRINT " RING BELL"
480 PRINT : PRINT "IS THIS CORRECT (Y/N)? ";
490 IF L1 >N2 THEN 510
500 GOSUB 140
510 IF A$ = "" AND X < = A2 THEN GET A$: PRINT A$: GOTO 530
520 A$ = CHR$(X -A2)
530 IF A$ = "N" THEN 100
540 IF L1 < = N2 THEN PRINT : PRINT "SUMMING. FIRST "L1 -1" INTEGERS": PRINT "ALREADY SUMMED.": PRINT : GOSUB 130: REM ALL INPUTS ENTERED. GO TO 'FAST' SUMMATION ROUTINE
550 REM PRINT FINAL RESULTS
560 IF M2 = 2 THEN PRINT CHR$(7)
570 HOME : PRINT " **** FINAL RESULT ****
580 PRINT : PRINT
590 IF M1 = 1 THEN PRINT "SUM IS "SUM: GOTO 610
600 PRINT "SUM OF INTEGERS FROM "N1" TO "N2" IS ": PRINT SUM