10 ONERROR PROCerror : END 20 *FX4,2 30 *FX200,1 40 MODE1:VDU23,1,0;0;0;0;:VDU19,1,4,0;0:PROCmenu 50 MODE7:*FX200,0 55 *FX4,0 60 END 70 DEFPROCdouble(A$,xpos%,ypos%) 80 FORI%=1 TO LENA$:A%=&A:X%=&70:Y%=&00:?&70=ASC(MID$(A$,I%,1)):CALL &FFF1:VDU23,254,?&71,?&71,?&72,?&72,?&73,?&73,?&74,?&74: 90 :VDU23,255,?&75,?&75,?&76,?&76,?&77,?&77,?&78,?&78:PRINTTAB(xpos%+I%,ypos%)" ":PRINTTAB(xpos%+I%,ypos%+1)CHR$254:PRINTTAB(xpos%+I%,ypos%+2)CHR$255:PRINTTAB(xpos%+I%,ypos%+3)" ":NEXT:ENDPROC 100 DEFPROCmenu:COLOUR129:CLS:COLOUR 2 110 CLS:PROCdouble("School Time Table Printer",7,2) 120 PRINTTAB(4,5);"By Andrew York in 1996 For Model B" 130 PROCdouble("1. Start a new file.",7,9) 140 PROCdouble("2. Print a saved file.",7,12) 150 PROCdouble("3. Leave this program.",7,15) 160 PROCdouble("Please enter 1,2 or 3 ",7,21) 165 PRINTTAB(1,29);"This program uses Print Master and will":PRINTTAB(10,30);"not work without it." 170 REPEAT 180 A$=GET$ 190 IF A$="1" THEN VDU22,0:PROCnew 200 IF A$="2" THEN PROCprint 210 IF A$="3" THEN ENDPROC 220 UNTIL FALSE 230 DEFPROCdisplay 250 PRINTTAB(0,0);"*******************************************************************************" 260 A=0:REPEAT 270 A=A+1 280 PRINTTAB(0);"* *" 290 UNTIL A=29 300 PRINTTAB(0,4);"*******************************************************************************" 310 PRINTTAB(0,29);"*******************************************************************************" 320 A=0:PRINTTAB(0,3) 330 REPEAT:A=A+1 340 PRINTTAB(10,A);"*" 350 UNTIL A=29 360 PRINTTAB(2,2);"Days" 370 PRINTTAB(0,9);"*******************************************************************************" 380 PRINTTAB(0,14);"*******************************************************************************" 390 PRINTTAB(0,19);"*******************************************************************************" 400 PRINTTAB(0,24);"*******************************************************************************" 410 PRINTTAB(2,6);"Monday" 420 PRINTTAB(2,11);"Tuesday" 430 PRINTTAB(2,16);"Wednes" 440 PRINTTAB(2,21);"Thurs" 450 PRINTTAB(2,26);"Fri" 460 A=4:REPEAT 470 PRINTTAB(23,A);"*" 480 A=A+1 490 UNTIL A=29 500 A=4:REPEAT 510 PRINTTAB(35,A);"*" 520 A=A+1 530 UNTIL A=29 540 A=4:REPEAT 550 PRINTTAB(47,A);"*" 560 A=A+1 570 UNTIL A=29 580 A=4:REPEAT:PRINTTAB(61,A);"*":A=A+1:UNTIL A=29 590 ENDPROC 600 DEFPROCnew 610 PROCdisplay 620 INPUTTAB(15,2);"School :"school$ 630 INPUTTAB(50,2);"Date :"date$ 640 INPUTTAB(11,6);""one$ 650 INPUTTAB(26,6);""two$ 660 INPUTTAB(37,6);""three$ 670 INPUTTAB(48,6);""four$ 680 INPUTTAB(62,6);""ELLO$ 690 INPUTTAB(11,12);""five$ 700 INPUTTAB(26,12);""six$ 710 INPUTTAB(37,12);""seven$ 720 INPUTTAB(48,12);""eight$ 730 INPUTTAB(62,12);""B$ 740 INPUTTAB(11,17);""nine$ 750 INPUTTAB(26,17);""ten$ 760 INPUTTAB(37,17);""eleven$ 770 INPUTTAB(48,17);""twelve$ 780 INPUTTAB(62,17);""C$ 790 INPUTTAB(11,21);""thirt$ 800 INPUTTAB(26,21);""fourit$ 810 INPUTTAB(37,21);""fift$ 820 INPUTTAB(48,21);""sixt$ 830 INPUTTAB(62,21);""D$ 840 INPUTTAB(11,26);""sevent$ 850 INPUTTAB(26,26);""eighty$ 860 INPUTTAB(37,26);""ninty$ 870 INPUTTAB(48,26);""end$ 880 INPUTTAB(62,26);""E$ 890 INPUTTAB(15,30);"File to save as:"file$ 900 IF LEN(file$) > 9 THEN PRINTTAB(15,30);"File name to long press any key to try again ";:A$=GET$:PRINTTAB(15,30);" ":GOTO890 910 PRINT"Saving ..."; 920 F=OPENOUT(file$) 930 PRINT#F,school$,date$,one$,two$,three$ 940 PRINT#F,four$,five$,six$,seven$ 950 PRINT#F,eight$,nine$,ten$,eleven$ 960 PRINT#F,twelve$,thirt$,fourit$,fift$ 970 PRINT#F,sixt$,sevent$,eighty$,ninty$ 980 PRINT#F,end$,ELLO$,B$,C$,D$,E$ 990 CLOSE#F:RUN:ENDPROC 1000 DEFPROCprint 1010 VDU22,0 1020 INPUT"File to print ?"file$ 1030 IF LEN(file$) >9 THEN CLS:GOTO1020 1040 F=OPENIN(file$) 1041 IF F=0 THEN PRINT:PRINT"File not found press space";:REPEAT:A$=GET$:UNTIL A$=" ":PRINT:PRINT:GOTO 1020 1050 INPUT#F,school$,date$,one$,two$,three$ 1060 INPUT#F,four$,five$,six$,seven$ 1070 INPUT#F,eight$,nine$,ten$,eleven$ 1080 INPUT#F,twelve$,thirt$,fourit$,fift$ 1090 INPUT#F,sixt$,sevent$,eighty$,ninty$ 1100 INPUT#F,end$,ELLO$,B$,C$,D$,E$ 1110 CLOSE#F 1120 PRINT 1130 PRINT"File loaded. How many print outs do you want";:INPUT B 1140 PRINT:PRINT"Press any key to start printing";:a$=GET$:FOR C = 1 TO B 1150 PROCdisplay 1160 PRINTTAB(15,2);"School :"school$ 1170 PRINTTAB(50,2);"Date :"date$ 1180 PRINTTAB(11,6);""one$ 1190 PRINTTAB(26,6);"";two$ 1200 PRINTTAB(37,6);""three$ 1210 PRINTTAB(48,6);""four$ 1220 PRINTTAB(62,6)""ELLO$ 1230 PRINTTAB(11,12);""five$ 1240 PRINTTAB(26,12);""six$ 1250 PRINTTAB(37,12);""seven$ 1260 PRINTTAB(48,12);""eight$:PRINTTAB(62,12)""B$ 1270 PRINTTAB(11,17);""nine$ 1280 PRINTTAB(26,17);""ten$ 1290 PRINTTAB(37,17);""eleven$ 1300 PRINTTAB(48,17);""twelve$ 1310 PRINTTAB(62,17);""C$ 1320 PRINTTAB(11,21);""thirt$ 1330 PRINTTAB(26,21);""fourit$ 1340 PRINTTAB(37,21);""fift$ 1350 PRINTTAB(48,21);""sixt$ 1360 PRINTTAB(62,21);""D$ 1370 PRINTTAB(11,26);""sevent$ 1380 PRINTTAB(26,26);""eighty$ 1390 PRINTTAB(37,26);""ninty$ 1400 PRINTTAB(48,26);""end$ 1410 PRINTTAB(62,26);"";E$:*TDUMP 1420 NEXT C 1430 VDU3:RUN 1440 ENDPROC 1450 DEFPROCerror:VDU7 1460 ON ERROR OFF 1470 ON ERROR PROCerror 1480 IF ERL = 920 THEN PRINT:PRINT:REPORT:PRINT" press space.":REPEAT:A$=GET$:UNTIL A$=" ":PRINT:PRINT:GOTO 890 1490 IF ERL = 1040 THEN PRINT:PRINT:REPORT:PRINT" press space.":REPEAT:A$=GET$:UNTIL A$=" ":PRINT:PRINT:GOTO 1020 1500 CLS:PRINT:REPORT:PRINT" press space.";:REPEAT:A$=GET$:UNTIL A$=" ":RUN:ENDPROC