home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / busi / vac_sc.zip / VAC.BAS < prev    next >
BASIC Source File  |  1986-11-24  |  14KB  |  325 lines

  1. 5 REM =================== PROGRAM LOADING ROUTINE ============================
  2. 10 CLS:COLOR 3,0:KEY OFF
  3. 15 CLEAR,,2500
  4. 20 DIM A$(50):DIM B(50,30):DIM C(485,10):DIM D(50,6)
  5. 25 DIM CAL$(485):DIM WK$(69)
  6. 26 LOCATE 9,31:PRINT "--VACATION SCHEDULE--"
  7. 27 LOCATE 10,35:PRINT"** LOADING **"
  8. 28 LOCATE 11,39:PRINT "WAIT !"
  9. 30 OPEN "VACCAL" FOR INPUT AS #1
  10. 35 FOR Z=1 TO 485:INPUT#1,CAL$(Z):NEXT Z
  11. 40 FOR Z=1 TO 69:INPUT #1,WK$(Z):NEXT Z
  12. 45 CLOSE#1
  13. 50 OPEN"VACDATA.1"FOR INPUT AS#2
  14. 55 FOR Z=1 TO 50:INPUT #2,A$(Z)
  15. 60 FOR Y=1 TO 6:INPUT #2,D(Z,Y):NEXT Y
  16. 65 NEXT Z:CLOSE#2
  17. 68 OPEN"VACDATA.2"FOR INPUT AS#3
  18. 70 FOR Z=1 TO 50
  19. 75 FOR Y=1 TO 30:INPUT #3,B(Z,Y):NEXT Y
  20. 80 NEXT Z
  21. 83 FOR Z=1 TO 485
  22. 85 FOR Y=1 TO 10:INPUT #3,C(Z,Y):NEXT Y
  23. 90 NEXT Z:CLOSE#3
  24. 190 SOUND 523,8:SOUND 1046,8:SOUND 130,10
  25. 195 REM ========================= MENU MODULE ================================
  26. 200 CLS:COLOR 3:PRINT STRING$(80,61);
  27. 202 ON KEY(9) GOSUB 2000:KEY(9) ON
  28. 205 COLOR 12:PRINT TAB(30)"MENU";TAB(74)"(200)"
  29. 207 COLOR 3:PRINT TAB(24)"VACATION SCHEDULE"
  30. 210 PRINT STRING$(80,61);
  31. 215 COLOR 14:PRINT TAB(20)"1:ENTER INDIVIDUAL SCHEDULE";TAB(74)"(600)":PRINT
  32. 220 PRINT TAB(20)"2:CANCEL INDIVIDUAL SCHEDULE";TAB(74)"(800)":PRINT
  33. 225 PRINT TAB(20)"3:ENTER ROSTER AND CONFLICTS";TAB(74)"(300)"
  34. 227 COLOR 3:PRINT TAB(19) STRING$(36,45)
  35. 230 PRINT TAB(20)"4:READ INDIVIDUAL SCHEDULE";TAB(74)"(700)":PRINT
  36. 232 PRINT TAB(20)"5:READ WEEKLY SCHEDULE";TAB(74)"(500)":PRINT
  37. 235 PRINT TAB(20)"6:READ ROSTER AND CONFLICTS";TAB(74)"(400)":PRINT
  38. 240 PRINT TAB(20)"7:READ LIST OF OPEN/CLOSED DAYS";TAB(74)"(900)"
  39. 242 PRINT TAB(19) STRING$(36,45)
  40. 243 COLOR 12:PRINT TAB(19)"10:DELETE ALL VACATION DATA &RESET";TAB(74)"(5000)"
  41. 244 PRINT
  42. 245 PRINT TAB(19)"12:DELETE VACATION CALENDER & RESET";TAB(74)"(5100)":COLOR 3
  43. 250 PRINT STRING$(80,61);
  44. 255 INPUT "ENTER MENU NUMBER:----OR ENTER (0) TO EXIT PROGRAM:                                               ----OR ENTER (20) TO BACKUP DATA:",M
  45. 256 IF M=20 THEN 6000
  46. 257 IF M=0 THEN SYSTEM
  47. 260 ON M GOTO 600,800,300,700,500,400,900,200,200,5000,200,5100
  48. 295 REM ================= ROSTER ENTRY MODULE ================================
  49. 300 CLS:GOSUB 3000:PRINT TAB(30)"***VACATION PRIORITY LIST***"
  50. 305 PRINT STRING$(80,61);
  51. 310 INPUT "ENTER NUMBER OF NAMES TO LIST:";R
  52. 315 INPUT "ENTER FIRST SEQUENTIAL SENIORITY NO.(1 TO 50)";S
  53. 320 PRINT STRING$(80,61);
  54. 325 FOR Z=S TO S+R-1
  55. 330 PRINT Z;:INPUT"ENTER NAME:";A$(Z)
  56. 335 FOR X=1 TO 6
  57. 340 INPUT "ENTER CONFLICT# (0 IF NONE)";D(Z,X)
  58. 345 IF D(Z,X)=0 THEN 355
  59. 350 NEXT X
  60. 355 NEXT Z
  61. 360 GOSUB 1000
  62. 365 GOTO 200
  63. 395 REM ================= ROSTER READOUT MODULE ==============================
  64. 400 CLS:X=1:GOSUB 3000
  65. 402 N=0
  66. 405 FOR Z=1 TO 24:PRINT TAB(38) CHR$(179):NEXT:LOCATE 1,1
  67. 410 FOR Z=1 TO 50
  68. 420 IF A$(Z)="" THEN 480
  69. 425 IF Z=24 THEN X=40:N=0
  70. 430 N=N+1:LOCATE N,X:PRINT Z;
  71. 435 PRINT A$(Z);
  72. 437 LOCATE CSRLIN,15+X
  73. 440 FOR Y=1 TO 6
  74. 450 IF D(Z,Y)=0 THEN 470
  75. 460 PRINT USING "###";D(Z,Y);:NEXT Y
  76. 470 NEXT Z
  77. 480 LOCATE 25,23:INPUT"",X
  78. 490 GOTO 200
  79. 495 REM ================= SCHEDULE READOUT MODULE ============================
  80. 500 CLS
  81. 502 PRINT"**WEEKLY VACATION SCHEDULE**"
  82. 503 COLOR 12:INPUT"DO YOU WANT HARD COPY?(Y/N)",HC$:COLOR 3
  83. 505 INPUT "ENTER WEEK# (1-70) OR ENTER A MONDAY DATE (mm-dd-yy)";X$:CLS
  84. 506 IF LEN(X$)<3 THEN X=VAL(X$):GOTO 510
  85. 507 FOR X=1 TO 69:IF WK$(X)=X$ THEN 510
  86. 508 NEXT X
  87. 509 IF X=70 THEN PRINT "INVALID DATE--ENTER AGAIN":GOTO 505
  88. 510 PRINT TAB(18)"*** VACATION SCHEDULE-WEEK #";X$;"***":PRINT STRING$(68,61)
  89. 512 IF HC$="Y"THEN LPRINT TAB(20)"*** VACATION SCHEDULE-WEEK#";X$;"***":LPRINT STRING$(68,61)
  90. 515 FOR Y=1 TO 485
  91. 520 IF MID$(CAL$(Y),3,8)=WK$(X) THEN 530
  92. 525 NEXT Y
  93. 530 FOR N=Y TO Y+4:PRINT"  ";MID$(CAL$(N),1,2);":";MID$(CAL$(N),3,5),:NEXT N
  94. 535 FOR S=1 TO 5:PRINT "------------",:NEXT S
  95. 544 XX=1:YY=5
  96. 545 FOR N=Y TO Y+4
  97. 550 FOR Z=1 TO 10
  98. 552 LOCATE YY,XX
  99. 554 IF C(N,Z)<>0 THEN PRINT A$(C(N,Z))
  100. 555 IF C(N,Z)=0 THEN 558
  101. 557 YY=YY+1
  102. 558 NEXT Z
  103. 559 IF Z>=10 THEN YY=5:XX=XX+14
  104. 560 NEXT N
  105. 562 XX=1:FOR N=Y TO Y+4
  106. 564 IF MID$(CAL$(N),11,2)="HL"THEN LOCATE 5,XX:PRINT "** HOLIDAY**";
  107. 566 XX=XX+14:NEXT N
  108. 570 LOCATE 24,1:PRINT STRING$(68,61);
  109. 572 IF HC$="Y" THEN 576
  110. 573 LOCATE 25,1:INPUT"READ ANOTHER WEEK?(Y/N):",I$
  111. 574 IF I$="Y" THEN 500
  112. 575 GOTO 200
  113. 576 X=1:FOR N=Y TO Y+4:LPRINT TAB(X) MID$(CAL$(N),1,2);":";MID$(CAL$(N),3,5);
  114. 577 X=X+14:NEXT N
  115. 578 X=1:FOR S=1 TO 5:LPRINT TAB(X)"------------";:X=X+14:NEXT S
  116. 580 X=1:FOR N=Y TO Y+4
  117. 581 IF MID$(CAL$(N),11,2)<>"HL" THEN X=X+14
  118. 582 IF MID$(CAL$(N),11,2)="HL"THEN LPRINT TAB(X)"**HOLIDAY**";:X=X+14
  119. 583 NEXT N
  120. 584 FOR Z=1 TO 10:X=1
  121. 585 FOR N=Y TO Y+4
  122. 586 IF C(N,Z)<>0 THEN LPRINT TAB(X)A$(C(N,Z));:X=X+14
  123. 587 IF C(N,Z)=0 THEN X=X+14
  124. 588 NEXT N
  125. 589 NEXT Z
  126. 590 LPRINT CHR$(10);:LPRINT STRING$(68,61)
  127. 592 FOR N=1 TO 5:LPRINT CHR$(10);:NEXT N:GOTO 573
  128. 595 REM ============== WEEKLY SCHEDULE INPUT MODULE ==========================
  129. 600 CLS:W=1
  130. 605 PRINT TAB(20)"**VACATION SCHEDULE INPUT**"
  131. 608 PRINT STRING$(80,61);
  132. 609 GOSUB 3000
  133. 610 PRINT "ENTER LAST NAME:";:COLOR 12:INPUT"",N$:COLOR 3
  134. 611 FOR ZZ=1 TO 50:IF A$(ZZ)=N$ THEN Z=ZZ:ZZ=50:GOTO 613
  135. 612 IF ZZ=50 AND A$(ZZ)<>N$ THEN LOCATE 3,1:PRINT"INVALID NAME:";:GOTO 610
  136. 613 NEXT ZZ
  137. 614 PRINT "ENTER DATE OF FIRST VACATION DAY (mm-dd-yy):";:COLOR 12:INPUT"",DAY$:COLOR 3
  138. 616 FOR YY=1 TO 485:IF MID$(CAL$(YY),3,8)=DAY$ THEN Y=YY:YY=485
  139. 617 NEXT YY
  140. 618 PRINT "ENTER NO. OF CONSECUTIVE VACATION DAYS:";:COLOR 12:INPUT"",N:NN=N:COLOR 3
  141. 619 ON ERROR GOTO 5500
  142. 620 DIM DAYS(30):FOR X=Y TO Y+N-1
  143. 621 IF MID$(CAL$(X),1,1)="S" THEN N=N+1
  144. 622 IF MID$(CAL$(X),1,1)="S" THEN 630
  145. 623 IF MID$(CAL$(X),11,2)="HL" THEN N=N+1
  146. 624 IF MID$(CAL$(X),11,2)="HL" THEN 630
  147. 626 DAYS(W)=X:W=W+1
  148. 627 IF DAYS(NN)<>0 THEN 635
  149. 630 NEXT X
  150. 632 IF DAYS(NN)=0 THEN ERASE DAYS:W=1:GOTO 620
  151. 635 PRINT STRING$(80,61);
  152. 636 FOR X=Y TO Y+N-1
  153. 637 FOR W=1 TO 30:IF B(Z,W)=X THEN PRINT "INVALID--DUPLICATE DATE SCHEDULED--PRESS ANY KEY/ENTER TO RE-SCHEDULE":INPUT "",I$:GOTO 694
  154. 638 NEXT W
  155. 639 NEXT X
  156. 640 FOR W=1 TO 30
  157. 642 IF DAYS(W)=0 THEN 658
  158. 645 PRINT MID$(CAL$(DAYS(W)),1,2);": ";MID$(CAL$(DAYS(W)),3,8);" (";
  159. 650 FOR M=1 TO 10:IF C(DAYS(W),M)=0 THEN 652
  160. 651 NEXT M
  161. 652 PRINT M-1;")  "
  162. 654 IF (M-1)=>4 THEN LOCATE CSRLIN-1,20:PRINT "<CONFLICT:";M-1;"SCHEDULED!"
  163. 656 NEXT W
  164. 658 LOCATE 7,40
  165. 660 FOR W=1 TO 30:IF DAYS(W)=0 THEN 674
  166. 662 FOR N=1 TO 4:IF D(Z,N)=0 THEN 672
  167. 664 FOR M=1 TO 10
  168. 666 IF C(DAYS(W),M)=D(Z,N)THEN LOCATE CSRLIN,46:PRINT "CONFLICT WITH:";A$(D(Z,N));":";MID$(CAL$(DAYS(W)),3,8)
  169. 668 NEXT M
  170. 670 NEXT N
  171. 672 NEXT W
  172. 674 LOCATE 21,1:PRINT STRING$(80,61);
  173. 676 INPUT "APPROVE SCHEDULE?(Y/N)";I$
  174. 677 LOCATE 23,1
  175. 678 IF I$="N" THEN PRINT"SCHEDULE NOT APPROVED FOR PROCESSING-RESCHEDULE":GOTO 694
  176. 682 FOR Y=1 TO 30:IF B(Z,Y)=0 THEN 686
  177. 683 NEXT Y
  178. 686 FOR W=1 TO 30:IF DAYS(W)=0 THEN 690
  179. 688 B(Z,Y)=DAYS(W):Y=Y+1:NEXT W
  180. 690 W=1
  181. 691 FOR Y=1 TO 10:IF C(DAYS(W),Y)=0 THEN GOTO 698
  182. 692 NEXT Y
  183. 693 GOSUB 4000
  184. 694 LOCATE 22,30:PRINT"*PROCESSING*":GOSUB 1500
  185. 696 ERASE DAYS:LOCATE 25,1:INPUT"PRESS ANY KEY/ENTER TO CONTINUE ",I$:GOTO 200
  186. 698 C(DAYS(W),Y)=Z:W=W+1:IF DAYS(W)<>0 THEN 691 ELSE GOTO 693
  187. 699 REM ============== INDIVIDUAL SCHEDULE READOUT MODULE ====================
  188. 700 CLS:GOSUB 3000
  189. 705 INPUT "TO READ VACATION SCHEDULE--ENTER LAST NAME";N$
  190. 710 FOR ZZ=1 TO 50:IF A$(ZZ)=N$ THEN Z=ZZ:ZZ=50:CLS:PRINT TAB(20)"VACATION SCHEDULE FOR: ";A$(Z):GOTO 720
  191. 715 IF ZZ=50 THEN PRINT "INVALID NAME--ENTER AGAIN":GOTO 705
  192. 720 NEXT ZZ
  193. 725 PRINT STRING$(68,61)
  194. 730 FOR Y=1 TO 30
  195. 735 IF B(Z,Y)<>0 THEN PRINT MID$(CAL$(B(Z,Y)),1,2);":";MID$(CAL$(B(Z,Y)),3,8),
  196. 740 IF B(Z,Y)=0 THEN Y=30
  197. 745 NEXT Y
  198. 747 IF POS(0)<>1 AND POS(0)<60 THEN LOCATE CSRLIN+1,1
  199. 750 FOR N=1 TO 5:PRINT STRING$(11,45),:NEXT N
  200. 752 IF M=2 THEN RETURN
  201. 753 COLOR 12:LOCATE 23,1:INPUT"DO YOU WANT HARDCOPY?(Y/N):",HC$
  202. 754 COLOR 3:IF HC$="Y"THEN GOSUB 770
  203. 755 LOCATE 24,1:INPUT "READ ANOTHER SCHEDULE ?(Y/N):",I$
  204. 760 IF I$="Y"THEN 700
  205. 765 GOTO 200
  206. 770 LPRINT TAB(20)"VACATION SCHEDULE FOR: ";A$(Z)
  207. 772 LPRINT STRING$(68,61)
  208. 774 X=1:FOR Y=1 TO 30
  209. 776 IF B(Z,Y)<>0 THEN LPRINT TAB(X)MID$(CAL$(B(Z,Y)),1,2);":";MID$(CAL$(B(Z,Y)),3,8);
  210. 778 IF B(Z,Y)=0 THEN Y=30:GOTO 782
  211. 780 X=X+14:IF X>60 THEN X=1
  212. 782 NEXT Y
  213. 784 LPRINT CHR$(141);:X=1:FOR N=1 TO 5:LPRINT TAB(X) STRING$(11,45);:X=X+14:NEXT N
  214. 786 FOR N=1 TO 10:LPRINT CHR$(10);:NEXT N
  215. 788 LPRINT CHR$(7):RETURN
  216. 795 REM ============== CANCEL INDIVIDUAL SCHEDULE MODULE =====================
  217. 800 CLS:GOSUB 3000
  218. 805 PRINT "TO CANCEL SCHEDULED VACATION--ENTER LAST NAME:";:COLOR 12:INPUT "",N$:COLOR 3:GOSUB 710
  219. 810 PRINT "DAYS MUST BE CANCELLED ONE AT A TIME":GOSUB 3000
  220. 815 PRINT "ENTER DATE TO CANCEL (mm-dd-yy) OR ENTER (0) TO STOP:";:COLOR 12:INPUT "",C$:COLOR 3
  221. 820 IF C$="0"THEN LOCATE 22,36:PRINT"**PROCESSING**":GOTO 860
  222. 825 FOR NN=1 TO 485:IF MID$(CAL$(NN),3,8)=C$ THEN N=NN:NN=485:GOTO 827
  223. 826 IF NN=485 THEN COLOR 12:PRINT "INVALID ENTRY--ENTER AGAIN":COLOR 3:GOTO 815
  224. 827 NEXT NN
  225. 830 FOR YY=1 TO 30:IF B(Z,YY)=N THEN B(Z,YY)=0:Y=YY:YY=30:GOTO 835
  226. 835 NEXT YY
  227. 840 FOR W=Y TO 29:B(Z,W)=B(Z,W+1):NEXT W
  228. 845 FOR Y=1 TO 10:IF C(N,Y)=Z THEN C(N,Y)=0:GOTO 850
  229. 847 NEXT Y
  230. 850 FOR W=Y TO 9:C(N,W)=C(N,W+1):NEXT W
  231. 855 GOTO 815
  232. 860 GOSUB 1500
  233. 865 CLS:M=4:GOTO 710
  234. 895 REM =============== NO. OF PEOPLE SCHEDULED MODULE =======================
  235. 900 CLS:GOSUB 3000:INPUT "ENTER MAX NUMBER ALLOWED TO BE SCHEDULED PER DAY (1 TO 10)";X:CLS
  236. 915 GOSUB 980
  237. 920 FOR Z=1 TO 485
  238. 921 IF Z=126 OR Z=252 OR Z=378 THEN GOSUB 960
  239. 922 IF MID$(CAL$(Z),1,1)="S" THEN 950
  240. 930 IF MID$(CAL$(Z),1,1)<>"S" THEN PRINT " ";MID$(CAL$(Z),3,5);" (";
  241. 932 IF MID$(CAL$(Z),11,2)="HL" THEN COLOR 12:PRINT "HL";:COLOR 3:PRINT ")",:GOTO 950
  242. 935 FOR Y=1 TO 10:IF C(Z,Y)=0 THEN 938
  243. 937 NEXT Y
  244. 938 COLOR 14
  245. 940 IF Y-1>=X THEN COLOR 12:PRINT STR$(Y-1);:COLOR 3:PRINT ")*",:GOTO 950
  246. 945 PRINT STR$(Y-1);:COLOR 3:PRINT ")",
  247. 950 NEXT Z
  248. 955 LOCATE 22,1:PRINT "KEY F5 FOR MENU":END:GOTO 200
  249. 960 PRINT STRING$(68,45)
  250. 965 INPUT "WANT TO CONTINUE? (Y/N)";I$
  251. 970 IF I$="N" THEN 200
  252. 975 CLS:GOSUB 980:RETURN
  253. 980 COLOR 14:PRINT TAB(10)"OPEN";:COLOR 3:PRINT "/";:COLOR 12:PRINT "CLOSED";:COLOR 3:PRINT " VACATION DAYS--( )=NO. OF PEOPLE SCHEDULED"
  254. 981 PRINT STRING$(68,61)
  255. 983 PRINT "     MON","     TUE","     WED","     THU","     FRI"
  256. 984 FOR N=1 TO 5:PRINT "------------",:NEXT N
  257. 985 RETURN
  258. 995 REM =============== WRITE TO ROSTER FILE SUB-ROUTINE =====================
  259. 1000 OPEN "VACDATA.1" FOR OUTPUT AS #2
  260. 1005 FOR Z=1 TO 50:WRITE#2,A$(Z)
  261. 1010 FOR Y=1 TO 6:WRITE#2,D(Z,Y):NEXT Y
  262. 1015 NEXT Z:CLOSE#2
  263. 1060 RETURN
  264. 1095 REM =============== WRITE TO SCHEDULE FILE SUB-ROUTINE ==================
  265. 1500 OPEN"VACDATA.2" FOR OUTPUT AS #3
  266. 1505 FOR Z=1 TO 50
  267. 1510 FOR Y=1 TO 30:WRITE#3,B(Z,Y):NEXT Y
  268. 1520 NEXT Z
  269. 1525 FOR Z=1 TO 485
  270. 1530 FOR Y=1 TO 10:WRITE#3,C(Z,Y):NEXT Y
  271. 1535 NEXT Z:CLOSE#3
  272. 1537 SOUND 523,8:SOUND 1046,8:SOUND 130,10
  273. 1540 RETURN
  274. 2000 RETURN 200
  275. 2095 REM =================== ESCAPE SUB-ROUTINE ==============================
  276. 3000 LIN=CSRLIN
  277. 3005 COLOR 12:LOCATE 25,1:PRINT "TO EXIT---KEY F9/ENTER";:COLOR 3
  278. 3010 LOCATE LIN,1:RETURN
  279. 3095 REM =============== SCHEDULE APPROVAL SUB- ROUTINE ======================
  280. 4000 COLOR 12:PRINT "*SCHEDULE APPROVED*";
  281. 4010 INPUT "WANT TO SCHEDULE ANOTHER? (Y/N):";I$
  282. 4020 IF I$="Y" THEN ERASE DAYS:COLOR 3:GOTO 600
  283. 4025 IF I$="N" THEN COLOR 3:RETURN
  284. 4095 REM =============== SCHEDULE FILE RE-INITIALIZATION MODULE ==============
  285. 5000 CLS:PRINT "YOU ARE ABOUT TO ERASE ALL VACATION DATES FOR ALL PERSONNEL!!"
  286. 5005 INPUT "OK TO PROCEED? (Y/N)",I$
  287. 5010 IF I$<>"Y" THEN 200 ELSE 7000
  288. 5015 ERASE B:ERASE C:DIM B(50,30):DIM C(485,10)
  289. 5017 LOCATE 12,30:PRINT"**ERASING**":GOSUB 1500:LOCATE 12,30:PRINT "              ":LOCATE 4,1
  290. 5020 INPUT "DO YOU WANT TO ERASE THE PERSONNEL ROSTER & CONFLICT LIST? (Y/N)",I$
  291. 5025 IF I$<>"Y" THEN RUN ELSE 5027
  292. 5027 ERASE A$:ERASE D:DIM A$(50):DIM D(50,6)
  293. 5028 LOCATE 12,30:PRINT"**ERASING**":GOSUB 1000
  294. 5030 RUN
  295. 5095 REM =============== CALENDAR FILE RE-INITIALIZATION MODULE ==============
  296. 5100 CLS:PRINT "YOU ARE ABOUT TO ERASE THE VACATION CALENDER!!"
  297. 5110 INPUT "DO YOU WANT TO PROCEED? (Y/N):",I$
  298. 5115 IF I$<>"Y" THEN 200
  299. 5120 CLS:CLEAR:CHAIN MERGE"VAC1",6000,DELETE 10-5030
  300. 5140 CLEAR:PRINT "TYPE RUN VAC"
  301. 5150 RUN"VAC"
  302. 5195 REM =============== ERROR TRAPPING ROUTINE (not required) ===============
  303. 5500 IF ERR=10 THEN ERASE DAYS:RESUME 620
  304. 5510 IF ERR=4 THEN PRINT"DATA FOR EARNED DAYS IS NOT PROGRAMMED":RESUME 5660
  305. 5595 REM =============== BACKUP ON EXIT ROUTINE ==============================
  306. 6000 CLS:LOCATE 10,1:PRINT "PLACE FORMATTED BACKUP DISKETTE IN DRIVE (A) AND STRIKE ANY KEY WHEN READY"
  307. 6002 IN$=INKEY$:IF IN$="" THEN 6002
  308. 6003 IF M=20 THEN LOCATE 12,38:PRINT "WAIT!"
  309. 6005 SHELL"COPY C:VAC*.* A:"
  310. 6010 SYSTEM
  311. 6095 REM =============== CALENDAR RE-INITIALIZATION ROUTINE ==================
  312. 7000 I$="":PRINT:PRINT"All Vacations Presently Sscheduled For The New Vacation Year":PRINT"Will Be Printed Out Prior To Erasing Last Year's Schedule"
  313. 7001 PRINT:PRINT"PLEASE TURN ON YOUR PRINTER NOW, THEN STRIKE THE ENTER KEY !!"
  314. 7002 INPUT I$:CLS
  315. 7003 LPRINT"VACATIONS PREVIOUSLY SCHEDULED":LPRINT"======================================":LPRINT
  316. 7004 FOR Z=1 TO 50
  317. 7005 IF A$(Z)="" THEN LPRINT CHR$(12):LPRINT CHR$(12):GOTO 5015
  318. 7015 FOR Y=1 TO 30
  319. 7020 IF B(Z,Y)>366 THEN LPRINT A$(Z):GOTO 7035
  320. 7025 NEXT Y
  321. 7030 NEXT Z
  322. 7035 LPRINT MID$(CAL$(B(Z,Y)),3,8);"  ";
  323. 7040 Y=Y+1:IF Y=30 THEN 7045 ELSE 7035
  324. 7045 LPRINT:LPRINT:GOTO 7025
  325.