!//IB// ! DECLARATION SECTION LENGTH 100 & COMMON C0800$ ! resolved LENGTH 8.2 & LOCAL L086C ! resolved LENGTH 8.2 & LOCAL L0874(5,12) ! resolved LENGTH 5.0 & LOCAL L0A52 ! resolved LENGTH 1.0 & LOCAL L0A54 ! resolved LENGTH 1.0 & LOCAL L0A56 ! resolved LENGTH 5 & LOCAL L0A57$ ! resolved LENGTH 50 & LOCAL L0A5D$ ! resolved LENGTH 3.0 & LOCAL L0A92 ! unresolved LENGTH 3.0 & LOCAL L0A96 ! unresolved LENGTH 100 & LOCAL L0A97$ ! resolved LENGTH 1.0 & LOCAL L0AFC ! resolved LENGTH 1.0 & LOCAL L0AFE ! resolved LENGTH 80 & LOCAL L0AFF$ ! resolved ! FORMAT SECTION F0E7C: FORMAT (CS);(EN) F0E83: FORMAT @(10,12);"STATUS: ";C0800$;@(10,12);(SB);"HIT ANY KEY TO EXIT" F0E9D: FORMAT @(10,12);"ESCAPEKEY STATUS = ";L0AFE;@(10,12);(SB);"HIT ANY KEY TO EXIT ROUTINE" F0EB8: FORMAT @(10,14);(SB);"ENTER OPTION";(SF);(TP);L0AFC;(TM);@(23,14) F0ED8: FORMAT @(10,16);(SB);"ENTER CUSTOMER ID";(SF);(TP);L0A57$;(TM);@(28,16) F0EF7: FORMAT @(5,18);"",54 F0F03: FORMAT @(5,18);"",54;@(5,18);L0AFF$ F0F18: FORMAT L0A52;L0A5D$;L086C;L0874(1,1),60*8;L0A54 ! EXECUTABLE SECTION CLEAR PRINT (0,F0E7C) IF C0800$ NE "" THEN PRINT (0,F0E83) INPUT (0) "" L0A97$ = C0800$ ELSE L0A97$ = "" ENDIF CLOSE (1) OPEN (1) "CUSTOMER",DIR="DTA",EXCPSUB=B0707 DO ESCAPETO SYSTEM L0AFE = 0 PRINT (0,F0EB8) INPUT (0) L0AFC SELECT CASE L0AFC CASE IS EQ 1 GOSUB B0112 CASE IS EQ 2 GOSUB B0123 CASE IS EQ 3 GOSUB B01E3 CASE IS EQ 4 GOSUB B02BF CASE IS EQ 5 GOSUB B03A1 CASE IS EQ 6 GOSUB B047D CASE IS EQ 7 GOSUB B055F CASE IS EQ 8 GOSUB B067E CASE IS EQ 9 GOTO B07A4 CASE ELSE PRINT (0) " ";(SB);"*** INVALID ENTRY *** (HIT ANY KEY TO CONTINUE)";(SF) INPUT (0) "" ENDSELECT PRINT (0,F0EF7) LOOP B0112: L0AFF$ = "CLEAR THE CUSTOMER FILE" PRINT (0,F0F03) CLEARFILE (1),EXCP=B0749 RETURN B0123: L0AFF$ = "USING FOR-NEXT TO CLEAR HISTORICAL AMOUNTS" GOSUB B06F9 READ (1,F0F18),KEY=L0A57$,EXCPSUB=B0783 ESCAPETO B076D PRINT (0,F0F03) FOR L0A92 = 1 TO 5 FOR L0A96 = 1 TO 12 IF L0874(L0A92,L0A96) LT 0 THEN CONTINUE L0874(L0A92,L0A96) = 0 IF 1 EQ L0AFE OR _ 1 EQ L0A54 THEN RETURN ENDIF NEXT L0A96 NEXT L0A92 RETURN B01E3: L0AFF$ = "USING DO-WHILE TO CLEAR HISTORICAL AMOUNTS" GOSUB B06F9 READ (1,F0F18),KEY=L0A57$,EXCPSUB=B0783 ESCAPETO B076D L0A92 = 1 L0A96 = 1 PRINT (0,F0F03) DO WHILE L0A92 LE 5 DO WHILE L0A96 LE 12 IF L0874(L0A92,L0A96) LT 0 THEN L0A96 = (L0A96 + 1) CONTINUE ENDIF IF 1 EQ L0AFE OR _ 1 EQ L0A54 THEN RETURN ENDIF L0874(L0A92,L0A96) = 0 L0A96 = (L0A96 + 1) LOOP L0A92 = (L0A92 + 1) L0A96 = 1 LOOP WRITE (1,F0F18),KEY=L0A57$ RETURN B02BF: L0AFF$ = "USING DO-UNTIL TO CLEAR HISTORICAL AMOUNTS" GOSUB B06F9 READ (1,F0F18),KEY=L0A57$,EXCPSUB=B0783 ESCAPETO B076D L0A92 = 1 L0A96 = 1 PRINT (0,F0F03) DO UNTIL 5 EQ L0A92 DO UNTIL 12 EQ L0A96 IF L0874(L0A92,L0A96) LT 0 THEN L0A96 = (L0A96 + 1) CONTINUE ENDIF L0874(L0A92,L0A96) = 0 IF 1 EQ L0AFE OR _ 1 EQ L0A54 THEN RETURN ENDIF L0A96 = (L0A96 + 1) LOOP L0A92 = (L0A92 + 1) L0A96 = 1 LOOP WRITE (1,F0F18),KEY=L0A57$ RETURN B03A1: L0AFF$ = "USING LOOP-WHILE TO CLEAR HISTORICAL AMOUNTS" GOSUB B06F9 READ (1,F0F18),KEY=L0A57$,EXCPSUB=B0783 ESCAPETO B076D L0A92 = 1 L0A96 = 1 PRINT (0,F0F03) DO DO IF 1 EQ L0AFE OR _ 1 EQ L0A54 THEN RETURN ENDIF IF L0874(L0A92,L0A96) LT 0 THEN L0A96 = (L0A96 + 1) CONTINUE ENDIF L0874(L0A92,L0A96) = 0 L0A96 = (L0A96 + 1) LOOP WHILE L0A96 LE 12 L0A92 = (L0A92 + 1) L0A96 = 1 LOOP WHILE L0A92 LE 5 WRITE (1,F0F18),KEY=L0A57$ RETURN B047D: L0AFF$ = "USING LOOP-UNTIL TO CLEAR HISTORICAL AMOUNTS" GOSUB B06F9 READ (1,F0F18),KEY=L0A57$,EXCPSUB=B0783 ESCAPETO B076D L0A92 = 1 L0A96 = 1 PRINT (0,F0F03) DO DO IF 1 EQ L0AFE OR _ 1 EQ L0A54 THEN RETURN ENDIF IF L0874(L0A92,L0A96) LT 0 THEN L0A96 = (L0A96 + 1) CONTINUE ENDIF L0874(L0A92,L0A96) = 0 L0A96 = (L0A96 + 1) LOOP UNTIL 12 EQ L0A96 L0A92 = (L0A92 + 1) L0A96 = 1 LOOP UNTIL 5 EQ L0A92 WRITE (1,F0F18),KEY=L0A57$ RETURN B055F: L0AFF$ = "USING COMPOUNT CONDITIONALS TO CLEAR HISTORICAL AMOUNTS" GOSUB B06F9 READ (1,F0F18),KEY=L0A57$,EXCPSUB=B0783 ESCAPETO B076D L0A92 = 1 L0A96 = 1 PRINT (0,F0F03) DO IF L0A92 LE 12 AND _ L0A96 LE 5 THEN IF 1 EQ L0AFE OR _ 1 EQ L0A54 THEN RETURN ENDIF IF L0874(L0A92,L0A96) LT 0 THEN L0A96 = (L0A96 + 1) IF 12 LT L0A96 THEN L0A96 = 1 L0A92 = (L0A92 + 1) IF 5 LT L0A92 THEN BREAK ENDIF CONTINUE ENDIF L0874(L0A92,L0A96) = 0 L0A96 = (L0A96 + 1) IF 12 LT L0A96 THEN L0A96 = 1 L0A92 = (L0A92 + 1) IF 5 LT L0A92 THEN BREAK ENDIF ENDIF LOOP B0675: WRITE (1,F0F18),KEY=L0A57$ RETURN B067E: L0AFF$ = "CLEAR CURRENT AMOUNTS FOR ALL CUSTOMERS" PRINT (0,F0F03) ESCAPETO B076D L0A57$ = FIRST(1,EXCP=B06F1) CLOSE (2) OPEN (2) "CUSTOMER",DIR="DTA" DO WHILE L0A57$ NE "" IF 1 EQ L0AFE OR _ 1 EQ L0A54 THEN RETURN ENDIF READ (1,F0F18),KEY=L0A57$ IF 0 LT L086C THEN L086C = 0 ENDIF WRITE (1,F0F18),KEY=L0A57$ L0A57$ = KEY(1,EXCPSUB=B06F2) LOOP B06F1: RETURN B06F2: L0A57$ = "" RETURN B06F9: PRINT (0,F0ED8) INPUT (0) L0A57$ RETURN B0707: IF 11 NE EXCP THEN ERROR ENDIF CREATE "CUSTOMER",2048,K,5,DIR="DTA",EXCP=B0723 AGAIN B0723: L0A97$ = C0800$ C0800$ = "UNABLE TO CREATE CUSTOMER FILE EXCP=" + STR(EXCP) PRINT (0,F0E83) INPUT (0) "" GOTO B07A4 B0749: L0A97$ = C0800$ C0800$ = "UNABLE TO CLEAR FILE EXCP=" + STR(EXCP) PRINT (0,F0E83) INPUT (0) "" RETURN B076D: L0AFE = 1 PRINT (0,F0E9D) INPUT (0) "" RETURN B0783: L0A52 = (NUM(L0A57$,L0A56)) L0A5D$ = "ID " + L0A57$ L086C = 0 RETURN B07A4: CLOSE SWAP (C0800$,L0A97$) RUN "PROGRAM",DIR="DTA"