8-Bit Software Online Conversion
New 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