10 DEFFNS="WorkRo2" 20 MODE7 30 VDU23;8202;0;0;0; 40 *FX4 1 50 READ W% 60 DIM R$(W%,7) 70 DIM D$(7) 80 DIM M$(12) 90 DIM MD%(12) 100 PROCReadInfo 250 REPEAT 260 PROCGetDate 270 PROCGetShift 280 VDU28,0,24,39,15 290 A$="." 300 REPEAT 310 VDU12 320 PROCDispWeek 330 PROCAgain 340 UNTILINSTR("AaEe",A$) 350 VDU26 360 UNTILINSTR("Ee",A$) 370 END 380 DEFPROCAgain 390 PRINT'" > < (A)nother (P)rint/(C)ont (E)nd"; 400 *FX21 410 REPEAT 420 A$=GET$ 430 IF INSTR("Cc",A$)PROCcont 440 IF INSTR("Pp",A$)PROCPrintOut 450 UNTILINSTR(",<.>AaEe",A$) 460 ENDPROC 470 DEFPROCcont 480 ONERRORRUN 490 PROCPrintOut 500 REPEAT 510 CLS 520 PROCDispWeek 530 PRINT'TAB(11);"ESCAPE TO FINISH"; 540 PROCPrintOut 550 UNTILFALSE 560 ENDPROC 570 DEFPROCPrintOut 580 FORL%=&7E80 TO &7F97 STEP 40 590 FORI%=0 TO 39 600 A%=?(L%+I%) 610 IF A%<32 OR A%>127 A%=32 620 VDU2,1,A%,3 630 NEXT 640 VDU2,1,13,3 650 NEXT 660 ENDPROC 670 DEFPROCDispWeek 680 PRINTTAB(9,0);"Date ";TAB(26,0)"Duty " 690 FORL%=0TO6 700 IF L%=0:IF INSTR("<,",A$):PROCDecDay 710 Y$=LEFT$(STR$(Y%)+"00",4) 720 PRINT"";D$(DOW%);TAB(11);STR$(D%);TAB(14);M$(M%);" ";Y$;TAB(29)"";R$(S%,DOW%) 730 PROCIncDay 740 NEXT 750 ENDPROC 760 DEFPROCGetShift 770 PROCcent("Calculating "+STR$(Day%)+" "+M$(Month%)+" "+STR$(Year%)+" ") 780 D%=SD% 790 M%=SM% 800 Y%=SY% 810 S%=SS% 820 DOW%=1 830 IF D%=Day% AND M%=Month% AND Y%=Year% ENDPROC 840 REPEAT 850 PROCIncDay 860 UNTILD%=Day% AND M%=Month% AND Y%=Year% 870 ENDPROC 880 DEFPROCIncDay 890 D%=D%+1:DOW%=DOW%+1:IF DOW%=8 DOW%=1:S%=S%+1:IF S%>W% S%=1 900 IF D%>MD%(M%):PROCchange 910 ENDPROC 920 DEFPROCDecDay 930 FOR I%=1TO14 940 D%=D%-1:DOW%=DOW%-1:IF DOW%=0 DOW%=7:S%=S%-1:IF S%=0 S%=W% 950 IF D%=0:PROCchangeDown 960 NEXT 970 ENDPROC 980 DEFPROCchange 990 D%=1 1000 M%=M%+1 1010 IF M%=13:M%=1:Y%=Y%+1 1020 IF Y% MOD 4=0 MD%(2)=29 ELSE MD%(2)=28 1030 ENDPROC 1040 DEFPROCchangeDown 1050 IF Y% MOD 4=0 MD%(2)=29 ELSE MD%(2)=28 1060 M%=M%-1 1070 IF M%=0:M%=12:Y%=Y%-1 1080 D%=MD%(M%) 1090 IF Y% MOD 4=0 MD%(2)=29 ELSE MD%(2)=28 1100 ENDPROC 1110 DEFPROCReadInfo 1120 FORL%=1TO7 1130 READD$(L%) 1140 NEXT 1150 FORL%=1TO12 1160 READM$(L%),MD%(L%) 1170 NEXT 1180 FORL%=1 TO W% 1190 FORI%=1 TO 7 1200 READR$(L%,I%):REM READ IN ROTA 1210 NEXT, 1220 READ SD%,SM%,SY%,SS% 1230 ENDPROC 1240 DEFPROCGetDate 1250 *FX21 1260 REPEAT 1270 CLS 1280 PROCcent("Shift Calculator 2 By C.J.Richardson.") 1290 PROCcent("Shift Calculator 2 By C.J.Richardson.") 1300 PRINT 1310 PROCcent("When to Ring 8BS on. ") 1320 PRINT 1330 PROCcent("Enter Date to Search For. ") 1340 PRINT'' 1350 PROCcent("Use any of the following formats:") 1360 PROCcent(""+STR$(SD%)+"/"+STR$(SM%)+"/"+STR$(SY%)+" or "+STR$(SD%)+"."+STR$(SM%)+"."+STR$(SY%)+" or "+STR$(SD%)+" "+STR$(SM%)+" "+STR$(SY%)) 1370 INPUT'"";D$ 1380 VDU11 1390 Day%=VAL(LEFT$(D$,INSTR(D$," ./")-1)) 1400 Year%=VAL(RIGHT$(D$,4)) 1410 Month%=VAL(MID$(D$,LEN(STR$(Day%))+2,LEN(STR$(Year%)))) 1420 UNTILYear%>=SY% AND Day%>0 AND Day%<32 AND Month%>0 AND Month%<13 1430 IF Year%>SY%+4 OR Year%