250 ONERRORMODE7:CLOSE#0:REPORT:PRINT" at line ";ERL:END 260 MODE7 270 PROCa 280 PROCb 290 PROCc 330 ONERRORPROCd:e$=" ":GOTO350 340 e$=FNf 350 IFe$=" "ANDFNg=8THENe$="A" 360 IFe$=" "ANDFNg<>8THENe$="D" 370 IFe$="A"ORe$="a"THENPROCh("ADFS"):PROCh("MOUNT 0") 380 IFe$="D"ORe$="d"THENPROCh("DISC"):PROCh("DRIVE 0") 390 ONERRORVDU6:CLOSE#0:MODE7:REPORT:PRINT" at line ";ERL:PROCh("KEY0 LIST "+STR$(ERL)+"|M"):PROCh("FX21"):PROCh("FX138,0,128"):PROCi:END 400 IFFNj("!Quest")THENk%=OPENIN("!Quest"):l%=BGET#k%:CLOSE#k%ELSEl%=-1 410 IFl%>1THENPRINT'CHR$(128+m%)"This program can only handle"'CHR$(128+m%)"version 0/1 files. Do you want to"'CHR$(128+m%)"delete the existing answers and"'CHR$(128+m%)"create a new answer file?";:l%=-2-FNn 420 IFl%=0ORl%=1THENPROCo(FALSE):PROCp 430 IFl%=-1THENl%=1:PROCo(TRUE) 440 IFl%=-2THENVDU26,12:PROCi:END 460 PROCq 470 PROCr 480 MODE7 490 PROCi 500 END 520 DEFPROCa 530 *FX229,1 540 *FX4,1 550 *FX225,140 560 PROCs 570 ENDPROC 590 DEFPROCi 600 *FX229,0 610 *FX4,0 620 *FX225,1 630 PROCt 640 ENDPROC 660 DEFPROCb 670 DIMu%256 680 ONERRORVDU6:CLOSE#0:MODE7:REPORT:PRINT" at line ";ERL:PROCh("KEY0 LIST "+STR$(ERL)+"|M"):PROCh("FX21"):PROCh("FX138,0,128"):PROCi:END 690 DIMv$(7) 700 PROCw 710 PROCx 720 ENDPROC 740 DEFPROCs 750 VDU23,1,0;0;0;0; 760 ENDPROC 780 DEFPROCt 790 VDU23,1,1;0;0;0; 800 ENDPROC 820 DEFFNS 830 ="Quaire" 850 DEFPROCw 860 y%=6 870 z%=3 880 aa%=3 890 m%=7 900 ba%=3 910 ca%=7 920 p%=7 930 da%=3 940 ea%=7 950 fa%=7 960 ga%=3 970 ha%=7 980 ia%=3 990 ja%=3 1000 ka%=3 1010 la%=7 1020 ma%=3 1030 na%=7 1040 oa%=3 1050 pa%=7 1060 IFea%=da%THENVDU26,12:PRINT"personal_data% and personal_heading% arethe same.":PROCi:END 1070 ENDPROC 1090 DEFPROCx 1100 LOCALqa% 1110 VDU26,12 1120 PRINT" ";CHR$(144+y%);"ÿ¯¯¯¯¯¯¯¥ÿ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ÿ"; 1130 PRINTCHR$(144+y%);"ÿ¯¯¯¯¯¯¯¯¯¯¯ª¯¯¯¯¯¯¯¯ ";CHR$(144+y%);"ÿ"; 1140 PRINTCHR$(144+y%);"ÿ";CHR$(144+z%);"êë ·Ž€µ ê£àðàðê ° °ð°ðàð   ";CHR$(144+y%);"ÿ"; 1150 PRINTCHR$(144+y%);"ÿ";CHR$(144+z%);"ê뢡·Žµ· ¢ëêêê€ê¡µŽµœµµê® ";CHR$(144+y%);"ÿ"; 1160 PRINTCHR$(144+y%);"";CHR$(144+z%);"¢£ £ ¡£¡ ¢£¢£¢ ¢¡££¡¡¡¡¢£   ";CHR$(145);" "; 1170 FORqa%=1TO18 1180 PRINTCHR$(144+y%);"ÿ";SPC(36);CHR$(144+y%);"ÿ"; 1190 NEXT 1200 PRINTCHR$(144+y%);"ÿüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüÿ"; 1210 VDU28,2,22,37,5 1220 ENDPROC 1240 DEFPROCh($u%) 1250 LOCALX%,Y% 1260 X%=u%MOD256 1270 Y%=u%DIV256 1280 CALL&FFF7 1290 ENDPROC 1310 DEFFNn 1320 LOCALe$ 1330 PRINTCHR$(128+ba%); 1340 *FX21 1350 REPEAT 1360 e$=CHR$(GETAND&DF) 1370 UNTILe$="Y"ORe$="N" 1380 IFe$="Y"THENPRINT"Yes"ELSEPRINT"No" 1390 =(e$="Y") 1410 DEFPROCra 1420 *FX21 1430 REPEATUNTILGET=32 1440 ENDPROC 1460 DEFPROCaa 1470 CLS 1480 PRINTTAB(5,0);CHR$(128+aa%);"Questionnaire system 0.13" 1490 ENDPROC 1510 DEFFNg 1520 LOCALA%,Y% 1530 A%=0 1540 Y%=0 1550 =(USR(&FFDA)AND&FF) 1570 DEFFNj(sa$) 1580 LOCALk% 1590 k%=OPENIN(sa$) 1600 IFk%=0THEN=FALSE 1610 CLOSE#k% 1620 =TRUE 1640 DEFPROCc 1650 LOCALA%,X%,Y% 1660 PROCaa 1670 PRINTTAB(0,2); 1680 IFNOTFNj("Questns")THENPRINTCHR$(128+ca%);"Sorry, I can't find the questions."'CHR$(128+ca%);"Press SPACE to continue...":PROCra:VDU26,12:PROCi:END 1690 PRINTCHR$(128+ca%);"Please wait, loading questions..."' 1700 DIMta%FNua("Questns")-1 1710 PROCh("Load Questns "+STR$~(ta%)) 1720 IF?ta%<0OR?ta%>1THENPRINTCHR$(128+ca%);"Sorry, this program can only handle";CHR$(128+ca%);"version 0/1 question files. Press"'CHR$(128+ca%);"SPACE to continue...":PROCra:VDU26,12:PROCi:END 1730 ENDPROC 1750 DEFFNua(sa$) 1760 LOCALk%,va% 1770 k%=OPENIN(sa$) 1780 va%=EXT#k% 1790 CLOSE#k% 1800 =va% 1820 DEFPROCo(wa%) 1830 LOCALxa%,ya%,za%,ab% 1840 DIMbb%(ta%!5,1) 1850 cb%=1+4+3+41+7*41+1+41+1+5*41+5*41 1860 xa%=9 1870 FORya%=1TOta%!5 1880 bb%(ya%,0)=xa% 1890 bb%(ya%,1)=cb% 1900 xa%=xa%+LEN($(ta%+xa%))+1 1910 IFta%?xa%=0THENcb%=cb%+2:db%=ta%?(xa%+1):xa%=xa%+2:FOReb%=1TOdb%:xa%=xa%+LEN($(ta%+xa%))+1:NEXT 1920 IFta%?xa%=1THENcb%=cb%+5:xa%=xa%+9 1930 IFta%?xa%=2THENcb%=cb%+2+ta%?(xa%+1):xa%=xa%+2 1940 IFta%?xa%=3THENcb%=cb%+2:xa%=xa%+1 1950 NEXT 1960 DIMfb%cb%-1 1970 IFNOTwa%THENENDPROC 1980 fb%?0=0 1990 fb%!1=ta%!1 2000 fb%!5=&2E2E2E2E 2010 FORza%=8TO295STEP41 2020 $(fb%+za%)="" 2030 NEXT 2040 fb%?336=255 2050 $(fb%+337)="" 2060 fb%?378=0 2070 FORza%=379TO748STEP41 2080 $(fb%+za%)="" 2090 NEXT 2100 PROCgb 2110 FORza%=1TOta%!5 2120 ab%=ta%+(bb%(za%,0)+LEN($(ta%+bb%(za%,0)))+1) 2130 fb%?bb%(za%,1)=?ab% 2140 IF?ab%=0THENfb%?(bb%(za%,1)+1)=0 2150 IF?ab%=1THENfb%!(bb%(za%,1)+1)=ab%!5+1 2160 IF?ab%=2THEN$(fb%+bb%(za%,1)+1)="" 2170 IF?ab%=3THENfb%?(bb%(za%,1)+1)=0 2180 NEXT 2190 PROCr 2200 ENDPROC 2220 DEFPROCgb 2230 LOCALe%,hb% 2240 REPEAT 2250 PROCib 2260 jb%=10:kb%=2 2270 REPEAT 2280 VDU31,jb%,kb% 2290 PROCt 2300 REPEAT 2310 *FX21 2320 e%=GET 2330 UNTIL(e%>=32ANDe%<=127)ORe%=13ORe%=27OR(e%>=136ANDe%<=140) 2340 PROCs 2350 lb%=-1 2360 IFe%=140THENPROCmb:PROCnb:PROCib 2370 IFe%=127ANDFNob(jb%-1,kb%)<>(128+ea%)ANDkb%<>2THENlb%=jb%:e%=137 2380 IFe%=13THENe%=138:jb%=1 2390 REPEAT 2400 IFe%=138ANDkb%<15THENkb%=kb%+1 2410 IFe%=139ANDkb%>2THENkb%=kb%-1 2420 UNTILFNob(0,kb%)<>32 2430 IFe%>=32ANDe%<=126ANDkb%<>5ANDkb%<>15THENVDU31,jb%,kb%,e%:e%=137 2440 IF(e%AND&DF)=89OR(e%AND&DF)=78ANDkb%=5THENfb%?336=-255*((e%AND&DF)=89):PRINTTAB(jb%,kb%);FNpb(fb%?336) 2450 IF(e%AND&DF)=89OR(e%AND&DF)=78ANDkb%=15THENfb%?378=-255*((e%AND&DF)=89):PRINTTAB(jb%,kb%);FNpb(fb%?378) 2460 IFe%=138ORe%=139THENjb%=FNqb(jb%,kb%) 2470 IFe%=136ANDFNob(jb%-1,kb%)<>(128+ea%)THENjb%=jb%-1 2480 IFe%=137ANDjb%<34ANDkb%<>5ANDkb%<>15THENjb%=jb%+1 2490 IFkb%=2ANDjb%>12THENjb%=12 2500 IFlb%<>-1THENPROCrb 2510 PROCt 2520 UNTILe%=27 2530 PROCs 2540 PROCmb 2550 PROCaa 2560 hb%=FALSE 2570 PRINTTAB(0,2); 2580 IFNOTFNsb(tb$)THENPRINTCHR$(128+fa%);"You must enter a valid user ID.":hb%=TRUE 2590 IFub$=""THENPRINTCHR$(128+fa%);"You must enter your name.":hb%=TRUE 2600 IFv$(1)=""THENPRINTCHR$(128+fa%);"You must enter your address.":hb%=TRUE 2610 IFhb%THENPRINT'CHR$(128+fa%);"Press SPACE to continue...":PROCra 2620 UNTILhb%=FALSE 2630 ENDPROC 2650 DEFFNvb(jb%,kb%) 2660 LOCALwb$,xb%,yb%,zb%,ac% 2670 IFHIMEM<>&7C00THEN=FNbc(jb%,kb%) 2680 wb$="" 2690 yb%=FALSE 2700 zb%=&7C02+34+(kb%+5)*40 2710 ac%=&7C02+jb%+(kb%+5)*40 2720 FORxb%=zb%TOac%STEP-1 2730 IFNOTyb%THENIF?xb%<>46AND?xb%<>32THENyb%=TRUE 2740 IFyb%THENwb$=CHR$(?xb%)+wb$ 2750 NEXT 2760 IFINSTR(wb$,"#")=0ANDINSTR(wb$,"_")=0ANDINSTR(wb$,"`")=0THEN=wb$ELSE=FNbc(jb%,kb%) 2780 DEFFNbc(jb%,kb%) 2790 LOCALwb$,xb%,yb%,ob% 2800 wb$="" 2810 yb%=FALSE 2820 FORxb%=34TOjb%STEP-1 2830 ob%=FNcc(xb%,kb%) 2840 IFNOTyb%THENIFob%<>46ANDob%<>32THENyb%=TRUE 2850 IFyb%THENwb$=CHR$(ob%)+wb$ 2860 NEXT 2870 =wb$ 2890 DEFFNdc(wb$) 2900 LOCALec% 2910 REPEAT 2920 ec%=(RIGHT$(wb$,1)="."ORRIGHT$(wb$,1)=" ") 2930 IFec%THENwb$=LEFT$(wb$,LEN(wb$)-1) 2940 UNTILNOTec% 2950 =wb$ 2970 DEFFNfc(gc$) 2980 LOCALhc$,ic%,ob% 2990 IFgc$=""THEN="" 3000 hc$="" 3010 FORic%=1TOLEN(gc$) 3020 ob%=ASC(MID$(gc$,ic%,1)) 3030 IFob%>=97ANDob%<=122THENob%=ob%-32 3040 hc$=hc$+CHR$(ob%) 3050 NEXT 3060 =hc$ 3080 DEFFNsb(tb$) 3090 IFLEN(tb$)<3THEN=FALSE 3100 IFINSTR(tb$,".")<>0ORINSTR(tb$," ")<>0THEN=FALSE 3110 =TRUE 3140 LOCALjc% 3160 IFjb%>lb%THENjb%=jb%-2:jc$="":FORjc%=jb%+1TO34:jc$=jc$+CHR$(FNob(jc%,kb%)):NEXT:PRINTTAB(jb%,kb%);jc$;".":ENDPROC 3170 IFlb%=jb%AND(FNob(jb%,kb%)=32ORFNob(jb%,kb%)=46)THENjb%=jb%-1:VDU31,jb%,kb%,46:ENDPROC 3180 IFlb%=jb%ANDFNob(jb%,kb%)<>32ANDFNob(jb%,kb%)<>46THENVDU31,jb%,kb%,46:ENDPROC 3190 ENDPROC 3210 DEFPROCrb 3220 IFjb%>lb%THENjb%=jb%-2:VDU31,jb%,kb%,46 3230 IFlb%=jb%AND(FNob(jb%,kb%)=32ORFNob(jb%,kb%)=46)THENjb%=jb%-1:VDU31,jb%,kb%,46:ENDPROC 3240 IFlb%=jb%ANDFNob(jb%,kb%)<>32ANDFNob(jb%,kb%)<>46THENVDU31,jb%,kb%,46:ENDPROC 3250 ENDPROC 3270 DEFFNkc(lc$,va%) 3280 =LEFT$(lc$+STRING$(va%,"."),va%) 3300 DEFFNob(jb%,kb%) 3310 IFHIMEM=&7C00THEN=?(&7C02+jb%+(kb%+5)*40) 3320 VDU31,jb%,kb%:A%=135:=((USR(&FFF4)AND&FFFF)DIV&100) 3340 DEFFNcc(jb%,kb%) 3350 LOCALA%,ic%,mc%,nc% 3360 ic%=POS:mc%=VPOS 3370 VDU31,jb%,kb% 3380 A%=135 3390 nc%=((USR(&FFF4)AND&FFFF)DIV&100) 3400 VDU31,ic%,mc% 3410 =nc% 3430 DEFFNqb(jb%,kb%) 3440 LOCALoc%,ob% 3450 IFkb%=2THEN=FNpc(jb%,10,12) 3460 IFkb%=3THEN=FNpc(jb%,7,34) 3470 IFkb%=5THEN=32 3480 IFkb%>=6ANDkb%<=12THEN=FNpc(jb%,0,34) 3490 IFkb%=14THEN=FNpc(jb%,19,34) 3500 IFkb%=15THEN=10 3510 VDU7:END 3530 DEFFNpc(jb%,qc%,rc%) 3540 IFjb%rc%THEN=rc%ELSE=jb% 3560 DEFFNpb(sc%) 3570 IFsc%=255THEN="Yes"ELSE="No " 3590 DEFPROCib 3600 LOCALtc% 3610 PROCaa 3620 PRINTTAB(0,2);CHR$(128+da%);"User ID:";CHR$(128+ea%);CHR$(fb%?5);CHR$(fb%?6);CHR$(fb%?7);CHR$(128+da%) 3630 PRINTCHR$(128+da%);"Name:";CHR$(128+ea%);FNkc($(fb%+8),28) 3640 PRINT'CHR$(128+da%);"Address:";SPC(14);"Publish:";CHR$(128+ea%);FNpb(fb%?336) 3650 FORtc%=1TO7 3660 PRINTCHR$(128+ea%);FNkc($(fb%+8+tc%*41),34) 3670 NEXT 3680 PRINT'CHR$(128+da%);"Telephone number:";CHR$(128+ea%);FNkc($(fb%+337),16) 3690 PRINTCHR$(128+da%);"Publish:";CHR$(128+ea%);FNpb(fb%?378) 3700 PRINT'CHR$(128+ga%);"Press";CHR$129;"f0";CHR$(128+ga%);"for help..."; 3710 ENDPROC 3730 DEFPROCmb 3740 LOCALuc%,vc% 3750 PRINTTAB(0,17);CHR$(128+ja%);"Please wait... "; 3760 tb$=LEFT$(FNdc(FNfc(CHR$(FNob(10,2))+CHR$(FNob(11,2))+CHR$(FNob(12,2))))+"...",3) 3770 ub$=FNvb(7,3) 3780 FORuc%=6TO12 3790 v$(uc%-5)=FNvb(1,uc%) 3800 NEXT 3810 wc$=FNvb(19,14) 3820 $(fb%+5)=tb$ 3830 $(fb%+8)=ub$ 3840 FORvc%=1TO7 3850 $(fb%+8+vc%*41)=v$(vc%) 3860 NEXT 3870 $(fb%+337)=wc$ 3880 ENDPROC 3900 DEFPROCnb 3910 LOCALe% 3920 PROCaa 3930 PRINTTAB(0,2);CHR$(128+ha%);"Use the cursor keys to move around.";CHR$(128+ha%);"Press RETURN to move to the start"'CHR$(128+ha%);"of the next line. Type as normal to";CHR$(128+ha%);"enter information. "; 3940 PRINT"DELETE will"'CHR$(128+ha%);"delete the character before the"'CHR$(128+ha%);"cursor but will not close up the"'CHR$(128+ha%);"gap. Press ESCAPE when you have"'CHR$(128+ha%);"finished." 3950 PRINT'CHR$(128+ha%);"You must enter your user ID, name"'CHR$(128+ha%);"and address. However, you can"'CHR$(128+ha%);"choose not to have your address"'CHR$(128+ha%);"published." 3960 PRINTTAB(0,16);CHR$(128+ia%);"Press";CHR$129;"f0";CHR$(128+ia%);"for more help or ESCAPE to";CHR$(128+ia%);"continue editing..."; 3970 REPEAT 3980 *FX21 3990 e%=GET 4000 UNTILe%=140ORe%=27 4010 IFe%=27THENENDPROC 4020 PROCaa 4030 PRINTTAB(0,2);CHR$(128+ha%);"You do not need to enter your"'CHR$(128+ha%);"telephone number and even if you do";CHR$(128+ha%);"it will only be published if you"'CHR$(128+ha%);"request this." 4040 PRINTTAB(0,16);CHR$(128+ia%);"Press ESCAPE to continue"'CHR$(128+ia%);"editing..."; 4050 REPEAT 4060 *FX21 4070 UNTILGET=27 4080 ENDPROC 4100 DEFPROCr 4110 PROCh("Save !Quest "+STR$~(fb%)+" +"+STR$~(cb%)+" 0 0") 4120 ENDPROC 4140 DEFPROCp 4150 PROCh("Load !Quest "+STR$~(fb%)) 4160 IFfb%!1=ta%!1THENENDPROC 4170 PROCaa 4180 PRINTTAB(0,2);CHR$(128+p%);"Sorry - the questionnaire ID in the";CHR$(128+p%);"question and answer files do not"'CHR$(128+p%);"match. Do you want to delete the"'CHR$(128+p%);"answer file and start again?"; 4190 IFNOTFNnTHENVDU26,12:PROCi:END 4200 *Delete !Quest 4210 RUN 4230 DEFPROCq 4240 LOCALxc%,ab%,e%,yc%,nc% 4250 xc%=1 4260 REPEAT 4270 PROCaa 4280 PRINTTAB(0,2);CHR$(128+ka%);"Question ";xc%;" of ";ta%!5;":"' 4290 ab%=FNzc(xc%) 4300 PRINT';:mc%=VPOS 4310 PRINTTAB(0,17);CHR$(128+ga%);"Press";CHR$129;"f0";CHR$(128+ga%);"for help..."; 4320 REPEAT 4330 *FX21 4340 e%=GET 4350 yc%=FALSE 4360 IFe%=140THENPROCad:yc%=TRUE 4370 IFe%=141THENPRINTTAB(0,17);CHR$(128+ja%);"Please wait... ";:PROCr:PRINTTAB(0,17);CHR$(128+ga%);"Press";CHR$129;"f0";CHR$(128+ga%);"for help..."; 4380 IFe%=142THENPROCgb:yc%=TRUE 4390 IFe%=143THENPROCbd:yc%=TRUE 4400 IFe%=136ANDxc%>1THENxc%=xc%-1:yc%=TRUE 4410 IFe%=137ANDxc%0THENxc%=nc%:yc%=TRUE 4480 UNTILyc%ORe%=27 4490 UNTILe%=27 4500 ENDPROC 4520 DEFPROCad 4530 LOCALe% 4540 PROCaa 4550 PRINTTAB(0,2);CHR$(128+ha%);"Use the left and right cursor keys"'CHR$(128+ha%);"to move between questions. To"'CHR$(128+ha%);"answer, either press the"'CHR$(128+ha%);"appropriate number for multiple"'CHR$(128+ha%);"choice questions or start "; 4560 PRINT"typing it";CHR$(128+ha%);"in and press RETURN when you have"'CHR$(128+ha%);"finished for other questions."''CHR$(128+ha%);"Pressing COPY on any question will"'CHR$(128+ha%);"indicate that you do not wish to"'CHR$(128+ha%);"answer it." 4570 PRINTTAB(0,16);CHR$(128+ia%);"Press";CHR$129;"f0";CHR$(128+ia%);"for more help or ESCAPE to";CHR$(128+ia%);"continue editing..."; 4580 REPEAT 4590 *FX21 4600 e%=GET 4610 UNTILe%=140ORe%=27 4620 IFe%=27THENENDPROC 4630 PROCaa 4640 PRINTTAB(0,2);CHR$(128+ha%);"Press";CHR$129;"f1";CHR$(128+ha%);"to save your answers,";CHR$129;"f2"'CHR$(128+ha%);"to edit your personal details and"'CHR$129;"f3";CHR$(128+ha%);"to edit your computing and"'CHR$(128+ha%);"general interests." 4650 PRINT'CHR$(128+ha%);"Press ESCAPE to save your answers"'CHR$(128+ha%);"and quit the program." 4660 PRINTTAB(0,16);CHR$(128+ia%);"Press ESCAPE to continue"'CHR$(128+ia%);"editing..."; 4670 REPEAT 4680 *FX21 4690 UNTILGET=27 4700 ENDPROC 4720 DEFFNzc(fd%) 4730 LOCALgd%,ab% 4740 gd%=ta%+bb%(fd%,0) 4750 PROChd(la%,$gd%) 4760 ab%=gd%?(LEN($gd%)+1) 4770 IFab%=0THENPROCid(gd%):PROCjd(gd%,fd%) 4780 IFab%=1THENPROCkd(gd%,fd%) 4790 IFab%=2THENPROCld(gd%,fd%) 4800 IFab%=3THENPROCmd(gd%,fd%) 4810 =ab% 4830 DEFFNnd(fd%) 4840 LOCALv% 4850 v%=ta%+bb%(fd%,0) 4860 =(v%+LEN($v%)+1) 4880 DEFPROChd(C%,T$) 4890 REPEAT 4900 IFLEN(T$)<36THENPRINTCHR$(128+C%);T$;SPC(35-LEN(T$));:T$=""ELSEA%=INSTR(T$," ",37):A%=A%+(A%=0)*-36:REPEAT:A%=A%-1:UNTILMID$(T$,A%,1)=" ":PRINTCHR$(128+C%);LEFT$(T$,A%-1);SPC(36-A%);:T$=MID$(T$,A%+1) 4910 UNTILT$="" 4920 ENDPROC 4940 DEFPROCid(gd%) 4950 LOCALv%,od%,pd% 4960 v%=gd%+LEN($gd%)+3 4970 od%=v%?-1 4980 FORpd%=1TOod% 4990 PRINTCHR$(128+la%);" ";pd%;") ";$v% 5000 v%=v%+LEN($v%)+1 5010 NEXT 5020 ENDPROC 5040 DEFPROCjd(gd%,fd%) 5050 LOCALqd% 5060 PRINT'CHR$(128+ma%);"Current answer:";CHR$(128+na%); 5070 qd%=fb%?(bb%(fd%,1)+1) 5080 IFqd%=0THENPRINT"No answer"ELSEPRINT;qd% 5090 ENDPROC 5110 DEFPROCmd(gd%,fd%) 5120 LOCALqd% 5130 PRINT'CHR$(128+ma%);"Current answer:";CHR$(128+na%); 5140 qd%=fb%?(bb%(fd%,1)+1) 5150 IFqd%=0THENPRINT"No answer"ELSEPRINTFNpb(254+qd%) 5160 ENDPROC 5180 DEFPROCkd(gd%,fd%) 5190 LOCALrc%,qd% 5200 PRINT'CHR$(128+ma%);"Current answer:";CHR$(128+na%); 5210 rc%=!(gd%+LEN($gd%)+6) 5220 qd%=fb%!(bb%(fd%,1)+1) 5230 IFqd%=rc%+1THENPRINT"No answer"ELSEPRINT;qd% 5240 ENDPROC 5260 DEFPROCld(gd%,fd%) 5270 LOCALwb$ 5280 PRINT'CHR$(128+ma%);"Current answer:"'CHR$(128+na%); 5290 wb$=$(fb%+bb%(fd%,1)+1) 5300 IFwb$=""THENPRINT"No answer"ELSEPRINTwb$ 5310 ENDPROC 5330 DEFFNcd(e%,fd%) 5340 IFNOT((e%>=49ANDe%<=(48+?(FNnd(fd%)+1)))ORe%=135)THEN=-1 5350 IFe%=135THENe%=48 5360 fb%?(bb%(fd%,1)+1)=e%-48 5370 =(fd%-(fd%=48ANDe%<=57)ORe%=135)THEN=-1 5500 qc%=!(FNnd(fd%)+1) 5510 rc%=!(FNnd(fd%)+5) 5520 IFe%=135THENfb%!(bb%(fd%,1)+1)=rc%+1:=(fd%-(fd%=48ANDe%<=57)ORe%=13ORe%=127ORe%=135 5620 IFe%=135THENhc$=STR$(rc%+1) 5630 IFe%>=48ANDe%<=57ANDLEN(hc$)0THENhc$=LEFT$(hc$,LEN(hc$)-1):PRINTTAB(jb%,kb%);FNkc(hc$,rd%);TAB(jb%,kb%);hc$; 5650 UNTIL(e%=13AND(hc$=""OR(VAL(hc$)>=qc%ANDVAL(hc$)<=rc%)))ORe%=135 5660 PROCs 5670 IFhc$<>""THENfb%!(bb%(fd%,1)+1)=VAL(hc$) 5680 =(fd%-(fd%=32ANDe%<=126)ORe%=135)THEN=-1 5730 IFe%=135THEN$(fb%+bb%(fd%,1)+1)="":=(fd%-(fd%=32ANDe%<=127)ORe%=13ORe%=135 5830 IFe%>=32ANDe%<=126ANDLEN(hc$)0THENhc$=LEFT$(hc$,LEN(hc$)-1):PRINTTAB(1,kb%+1);FNkc(hc$,rd%);TAB(1,kb%+1);hc$; 5850 UNTILe%=13ORe%=135 5860 PROCs 5870 IFe%=135THEN$(fb%+bb%(fd%,1)+1)="" 5880 IFhc$<>""ANDe%<>135THEN$(fb%+bb%(fd%,1)+1)=hc$ 5890 =(fd%-(fd%=32ANDe%<=127)ORe%=13ORe%=27OR(e%>=136ANDe%<=140) 6020 PROCs 6030 lb%=-1 6040 IFe%=140THENPROCtd:PROCud:PROCsd 6050 IFe%=127ANDjb%>1THENlb%=jb%:e%=137 6060 IFe%=13THENe%=138:jb%=1 6070 REPEAT 6080 IFe%=138ANDkb%<14THENkb%=kb%+1 6090 IFe%=139ANDkb%>3THENkb%=kb%-1 6100 UNTILFNob(0,kb%)<>(128+oa%) 6110 IFe%>=32ANDe%<=126THENVDU31,jb%,kb%,e%:e%=137 6120 IFe%=136ANDjb%>1THENjb%=jb%-1 6130 IFe%=137ANDjb%<34THENjb%=jb%+1 6140 IFkb%=2ANDjb%>12THENjb%=12 6150 IFlb%<>-1THENPROCvd 6160 PROCt 6170 UNTILe%=27 6180 PROCs 6190 PROCtd 6200 ENDPROC 6220 DEFPROCsd 6230 LOCALwd% 6240 PROCaa 6250 PRINTTAB(0,2);CHR$(128+oa%);"Computing interests:" 6260 FORwd%=379TO748STEP41 6270 IFwd%=584THENPRINTCHR$(128+oa%)'CHR$(128+oa%);"General interests:" 6280 PRINTCHR$(128+pa%);FNkc($(fb%+wd%),34) 6290 NEXT 6300 PRINTTAB(0,17);CHR$(128+ga%);"Press";CHR$129;"f0";CHR$(128+ga%);"for help..."; 6310 ENDPROC 6330 DEFPROCvd 6340 IFjb%>lb%THENjb%=jb%-2:VDU31,jb%,kb%,46 6350 IFlb%=jb%AND(FNob(jb%,kb%)=32ORFNob(jb%,kb%)=46)THENjb%=jb%-1:VDU31,jb%,kb%,46:ENDPROC 6360 IFlb%=jb%ANDFNob(jb%,kb%)<>32ANDFNob(jb%,kb%)<>46THENVDU31,jb%,kb%,46:ENDPROC 6370 ENDPROC 6390 DEFPROCtd 6400 LOCALkb%,xb% 6410 PRINTTAB(0,17);CHR$(128+ja%);"Please wait... "; 6420 kb%=3 6430 FORxb%=0TO9 6440 $(fb%+379+xb%*41)=FNvb(1,kb%) 6450 kb%=kb%+1 6460 IFkb%=8ORkb%=9THENkb%=10 6470 NEXT 6480 ENDPROC 6500 DEFPROCud 6510 LOCALe% 6520 PROCaa 6530 PRINTTAB(0,2);CHR$(128+ha%);"Use the cursor keys to move around.";CHR$(128+ha%);"Press RETURN to move to the start"'CHR$(128+ha%);"of the next line. Type as normal to";CHR$(128+ha%);"enter information. "; 6540 PRINT"DELETE will"'CHR$(128+ha%);"delete the character before the"'CHR$(128+ha%);"cursor but will not close up the"'CHR$(128+ha%);"gap. Press ESCAPE when you have"'CHR$(128+ha%);"finished." 6550 PRINTTAB(0,16);CHR$(128+ia%);"Press ESCAPE to continue"'CHR$(128+ia%);"editing..."; 6560 REPEAT 6570 *FX21 6580 UNTILGET=27 6590 ENDPROC 6610 DEFFNf 6640 PROCaa 6650 PRINT'CHR$(128+m%);"Please insert your submission disc"'CHR$(128+m%);"into drive 0. This disc must be in"'CHR$(128+m%);"the drive at all times when using"'CHR$(128+m%);"this program." 6660 PRINT'CHR$(128+m%);"Press A if this disc is in ADFS"'CHR$(128+m%);"format, D if it is in DFS format or";CHR$(128+m%);"SPACE to use the current format. If";CHR$(128+m%);"in doubt, press SPACE." 6670 =FNxd("AaDd ",FALSE) 6690 DEFFNxd(yd$,zd%) 6700 LOCALe$ 6710 REPEAT 6720 *FX21 6730 IFzd%THENe$=CHR$(GETAND&DF)ELSEe$=GET$ 6740 UNTILINSTR(yd$,e$)<>0 6750 =e$ 6770 DEFPROCd 6780 SOUND1,-10,101,5 6790 ENDPROC