8-Bit Software Online Conversion

8BS Questionnaire - Listing

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