8-Bit Software Online Conversion

8BS Messaging System. Update - Listing

250: 260*FX119 270MODE7 280PROCa 290PROCb 300PROCc 310PROCd 320REPEAT 330e%=FNf 340IFe%=1THENPROCg 350IFe%=2THENPROCh 360IFe%=3THENPROCi 370IFe%=4THENPROCj 380IFe%=5THENPROCk 390UNTILe%=6 400MODE7 410PROCl 420END 430: 440DEFPROCb 450*FX225,3 460*FX226,3 470*FX227,3 480*FX229,1 490*FX4,1 500ENDPROC 510: 520DEFPROCl 530*FX225,1 540*FX226,128 550*FX227,144 560*FX229,0 570*FX4,0 580ENDPROC 590: 600DEFPROCc 610m%=4096 620n%=25 630DIMo%(n%),p%(6),q%256,r%m% 640ONERRORIFERR=17THENPROCs("FX229,1") :GOTO320ELSEVDU6:CLOSE#0:MODE7:REPORT:PR INT" at line ";ERL:PROCs("KEY0 LIST "+ST R$(ERL)+"|M"):PROCs("FX21"):PROCs("FX138 ,0,128"):PROCl:END 650PROCt 660PROCu 670PROCv 680ENDPROC 690: 700DEFPROCa 710VDU23,1,0;0;0;0; 720ENDPROC 730: 740DEFPROCw 750VDU23,1,1;0;0;0; 760ENDPROC 770: 780DEFFNS 790="SendMes" 800: 810DEFPROCt 820x%=6 830y%=3 840z%=3 850aa%=7 860ba%=7 870ca%=3 880da%=7 890ea%=4 900fa%=3 910ga%=7 920ha%=7 930ia%=2 940ja%=3 950ka%=3 960la%=7 970ma%=3 980na%=7 990oa%=7 1000pa%=3 1010qa%=3 1020k%=7 1030ra%=3 1040sa%=3 1050ta%=7 1060ENDPROC 1070: 1080DEFPROCu 1090LOCALua% 1100VDU26,12 1110PRINT" ";CHR$(144+x%);"¶/ //////%¶/////////////////¶"; 1120PRINTCHR$(144+x%);"¶///////////*/// ///// ";CHR$(144+x%);"¶"; 1130PRINTCHR$(144+x%);"¶";CHR$(144+y%); "jk 74$5 j£`p`pj 0 0p0p`p ";CH R$(144+x%);"¶"; 1140PRINTCHR$(144+x%);"¶";CHR$(144+y%); "jk"!7457 "kjjj$j!545=55j. ";CH R$(144+x%);"¶"; 1150PRINTCHR$(144+x%);" ""£ £ !£! "£"£" "!££!!!!"£ ";CH R$(145);" "; 1160FORua%=1TO18 1170PRINTCHR$(144+x%);"¶";SPC(36);CHR$( 144+x%);"¶"; 1180NEXT 1190PRINTCHR$(144+x%);"¶||||||||||||||| ||||||||||||||||||||||¶"; 1200VDU28,2,22,37,5 1210ENDPROC 1220: 1230DEFPROCs($q%) 1240LOCALX%,Y% 1250X%=q%MOD256 1260Y%=q%DIV256 1270CALL&FFF7 1280ENDPROC 1290: 1300DEFPROCd 1310REPEAT 1320CLS 1330PROCz 1340PRINTTAB(0,2);CHR$(128+aa%);"Please insert your 8BS submissions"'CHR$(128+a a%);"disc into drive 0 and press SPACE"' CHR$(128+aa%);"when you are ready..." 1350PRINT'CHR$(128+aa%);"The disc must be in the drive at"'CHR$(128+aa%);"all t imes when using this program." 1360*FX21 1370REPEATUNTILGET=32 1380IFFNva=8THENPROCs("MOUNT 0")ELSEPRO Cs("DRIVE 0") 1390IFFNwa("!Mess")THENPRINT'CHR$(128+a a%);"This disc has a !Mess file. You may ";CHR$(128+aa%);"wish to read the accomp anying"'CHR$(128+aa%);"article before co ntinuing." 1400IFFNwa("!Mess")THENPRINT'CHR$(128+a a%);"Press SPACE to continue...":PROCs(" FX21"):REPEATUNTILGET=32 1410IFNOTFNwa("!Mesg")THENPROCbaELSEPRO Cxa 1420UNTILya%=0 1430ENDPROC 1440: 1450DEFPROCxa 1460PROCza 1470IFya%=0THENENDPROC 1480PRINT'CHR$(128+aa%);"This program c an only handle"'CHR$(128+aa%);"version 0 files." 1490PRINT'CHR$(128+aa%);"Press SPACE to continue..." 1500*FX21 1510REPEATUNTILGET=32 1520ENDPROC 1530: 1540DEFPROCz 1550PRINTTAB(5,0);CHR$(128+z%);"8BS mes saging system 1.00" 1560ENDPROC 1570: 1580DEFFNva 1590LOCALA%,Y% 1600A%=0 1610Y%=0 1620=(USR(&FFDA)AND&FF) 1630: 1640DEFFNwa(ab$) 1650LOCALbb% 1660bb%=OPENIN(ab$) 1670IFbb%=0THEN=FALSE 1680CLOSE#bb% 1690=TRUE 1700: 1710DEFPROCba 1720LOCALbb%,cb% 1730CLS 1740PROCz 1750PRINTTAB(0,2);CHR$(128+ba%);"Please enter your three-digit user"'CHR$(128+b a%);"ID:";CHR$(128+ca%); 1760db$=FNeb(FNca(3,3)) 1770PRINT''CHR$(128+ba%);"Please enter your name as you wish"'CHR$(128+ba%);"it to appear in message headings:"'';:cb%= VPOS 1780PRINT''CHR$(128+ba%);"(just press R ETURN if you wish to"'CHR$(128+ba%);"rem ain anonymous)" 1790PRINTTAB(0,cb%);CHR$(128+ca%); 1800fb$=FNca(0,20) 1810bb%=OPENOUT("!Mesg") 1820BPUT#bb%,0:ya%=0 1830PRINT#bb%,db$ 1840PRINT#bb%,LEFT$(fb$+STRING$(20," ") ,20) 1850gb%=PTR#bb% 1860PRINT#bb%,0 1870CLOSE#bb% 1880ENDPROC 1890: 1900DEFPROCza 1910LOCALbb% 1920bb%=OPENIN("!Mesg") 1930ya%=BGET#bb% 1940IFya%<>0THENCLOSE#bb%:ENDPROC 1950INPUT#bb%,db$ 1960INPUT#bb%,fb$ 1970REPEAT 1980IFRIGHT$(fb$,1)=" "THENfb$=LEFT$(fb $,LEN(fb$)-1) 1990UNTILRIGHT$(fb$,1)<>" " 2000gb%=PTR#bb% 2010CLOSE#bb% 2020ENDPROC 2030: 2040DEFFNeb(hb$) 2050LOCALib$,jb%,kb% 2060ib$="" 2070FORjb%=1TOLEN(hb$) 2080kb%=ASC(MID$(hb$,jb%,1)) 2090IFkb%>=ASC("a")ANDkb%<=ASC("z")THEN kb%=kb%-32 2100ib$=ib$+CHR$(kb%) 2110NEXT 2120=ib$ 2130: 2140DEFFNca(lb%,mb%) 2150LOCALjb%,nb%,hb$,ob% 2160jb%=POS 2170nb%=VPOS 2180hb$="" 2190REPEAT 2200REPEAT 2210*FX21 2220ob%=GET 2230UNTILob%=13OR(ob%>=32ANDob%<=127) 2240IFob%=127ANDLEN(hb$)>0THENVDU127:hb $=LEFT$(hb$,LEN(hb$)-1) 2250IFob%<>127ANDob%<>13ANDLEN(hb$)<mb% THENVDUob%:hb$=hb$+CHR$(ob%) 2260UNTIL(ob%=13ANDLEN(hb$)>=lb%) 2270=hb$ 2280: 2290DEFFNf 2300LOCALpb%,ob% 2310CLS 2320PROCz 2330PRINTTAB(3,2);CHR$(128+da%);"Start a new message";TAB(32,2);"N" 2340PRINTTAB(3,3);CHR$(128+da%);"View/e dit the messages";TAB(32,3);"V" 2350PRINTTAB(3,4);CHR$(128+da%);"Tidy t he messages";TAB(32,4);"T" 2360PRINTTAB(3,5);CHR$(128+da%);"Re-ent er your user ID/name";TAB(32,5);"R" 2370PRINTTAB(3,6);CHR$(128+da%);"Undele te deleted messages";TAB(32,6);"U" 2380PRINTTAB(3,7);CHR$(128+da%);"Quit t o BASIC";TAB(32,7);"Q" 2390PRINTTAB(0,9);CHR$(128+ga%);"Use th e cursor keys to move the bar";CHR$(128+ ga%);"and press RETURN to select, or use "'CHR$(128+ga%);"the appropriate key sho rtcut." 2400pb%=1 2410PRINTTAB(1,pb%+1);CHR$(128+ea%);CHR $(157);CHR$(128+fa%);TAB(35,pb%+1);CHR$1 56; 2420REPEAT 2430REPEAT 2440*FX21 2450ob%=GET 2460UNTILINSTR("NVTRUQnvtruq"+CHR$(138) +CHR$(139)+CHR$(13),CHR$(ob%))>0 2470PRINTTAB(1,pb%+1);CHR$(128+da%);" " 2480IFob%=138THENIFpb%<6THENpb%=pb%+1 2490IFob%=139THENIFpb%>1THENpb%=pb%-1 2500IFob%>=ASC("a")ANDob%<=ASC("z")THEN ob%=ob%-32 2510IFob%=ASC("N")THENpb%=1 2520IFob%=ASC("V")THENpb%=2 2530IFob%=ASC("T")THENpb%=3 2540IFob%=ASC("R")THENpb%=4 2550IFob%=ASC("U")THENpb%=5 2560IFob%=ASC("Q")THENpb%=6 2570PRINTTAB(1,pb%+1);CHR$(128+ea%);CHR $(157);CHR$(128+fa%);TAB(35,pb%+1);CHR$1 56; 2580UNTILob%=13 2590=pb% 2600: 2610DEFPROCg 2620LOCALjb%,nb%,qb$,rb%,sb$ 2630CLS 2640PROCz 2650bb%=OPENIN("!Mesg") 2660PTR#bb%=gb% 2670INPUT#bb%,rb% 2680CLOSE#bb% 2690IFrb%=n%THENPRINTCHR$(128+ha%);"Sor ry - you already have ";n%'CHR$(128+ha%) ;"messages!"''CHR$(128+ha%);"Press SPACE to return to the menu..";:PROCs("FX21") :REPEATUNTILGET=32:ENDPROC 2700PROCtb 2710PRINTTAB(0,2);CHR$(128+ha%);"Please enter the user ID of the"'CHR$(128+ha%) ;"recipient:";CHR$(128+ca%); 2720jb%=POS 2730nb%=VPOS 2740PRINT''CHR$(128+ha%);"(Use 999 for all users and CCC for"'CHR$(128+ha%);"pr ogram comments)" 2750PRINTTAB(jb%,nb%); 2760*FX229,0 2770qb$=FNeb(FNca(3,3)) 2780*FX229,1 2790IFqb$="999"THENsb$=" (all members)" ELSEsb$="" 2800IFqb$<>"CCC"THENPROCub(CHR$(128+ia% )+"To: "+CHR$(128+ja%)+qb$+sb$,r%):P ROCub(CHR$(128+ia%)+"Subject:"+CHR$(128+ ja%),r%+80) 2810IFqb$="CCC"THENPROCub(CHR$(128+ia%) +"Program:"+CHR$(128+ja%),r%+40) 2820PROCub(CHR$(128+ia%)+"From: "+CHR $(128+ja%)+db$,r%+(40*ABS(qb$<>"CCC"))) 2830IFfb$<>""THENPROCub("("+fb$+")",r%+ (40*ABS(qb$<>"CCC"))+14) 2840qb$=FNvb(qb$,10,2+(qb$="CCC")) 2850PROCwb(qb$) 2860PROCu 2870ENDPROC 2880: 2890DEFPROCub(xb$,yb%) 2900LOCALzb% 2910FORzb%=yb%TOyb%+LEN(xb$)-1 2920?zb%=ASC(MID$(xb$,zb%-yb%+1,1)) 2930NEXT 2940ENDPROC 2950: 2960DEFPROCtb 2970!&70=r% 2980!&72=r%+m%+1 2990CALLtb 3000ENDPROC 3010: 3020DEFFNvb(qb$,ac%,bc%) 3030LOCALob%,cc%,ob%,dc%,ec% 3040VDU26,12 3050cc%=0 3060fc%=FALSE 3070PROCgc(cc%) 3080PROChc(fc%) 3090PROCw 3100REPEAT 3110PRINTTAB(ac%,bc%); 3120REPEAT 3130*FX21 3140ob%=GET 3150UNTIL(ob%>=3ANDob%<=13)ORob%=27ORob %>=32 3160dc%=INKEY(-1) 3170ec%=INKEY(-2) 3180IFNOTfc%ANDob%>=3ANDob%<=12THENac%= FNic(ac%,bc%,cc%,ob%,dc%,ec%) 3190IFob%=12ANDNOTdc%ANDNOTec%THENfc%=N OTfc%:PROCa:PROChc(fc%):PROCw 3200IFNOTfc%ANDob%=10ANDNOTdc%ANDec%THE NPROCa:PROCjc(bc%,cc%):VDU26,12:PROCgc(c c%):PROChc(fc%):PROCw 3210IFNOTfc%ANDob%=11ANDNOTdc%ANDec%THE NPROCa:PROCkc(bc%,cc%):VDU26,12:PROCgc(c c%):PROChc(fc%):PROCw 3220IFNOTfc%ANDob%=12ANDdc%ANDNOTec%THE NPROCa:qb$=FNlc(qb$):VDU26,12:PROCgc(cc% ):PROChc(fc%):PROCw 3230IFNOTfc%AND(ob%>=32ANDob%<=126)THEN VDUob%:r%?FNmc(ac%,bc%,cc%)=ob%:ac%=ac%+ 1 3240IFfc%ANDINSTR("QWASZX",CHR$(ob%AND& DF))<>0THENr%?FNmc(ac%,bc%,cc%)=FNnc(r%? FNmc(ac%,bc%,cc%),ob%AND&DF) 3250IFob%=127ANDac%>0THENac%=ac%-1:PROC oc(ac%,bc%,cc%):PROCa:VDU31,0,bc%:PROCpc (cc%+bc%):PROCw 3260IFob%=13THENac%=0:bc%=bc%+1 3270IFob%=136THENac%=ac%-1:IFdc%THENac% =0 3280IFob%=137THENac%=ac%+1:IFdc%THENac% =39 3290IFob%=138THENbc%=bc%+1:IFdc%THENbc% =bc%-1:PROCa:cc%=FNqc(cc%+12):PROCgc(cc% ):PROChc(fc%):PROCw 3300IFob%=139THENbc%=bc%-1:IFdc%THENbc% =bc%+1:PROCa:cc%=FNqc(cc%-12):PROCgc(cc% ):PROChc(fc%):PROCw 3310IFac%<0THENac%=39:bc%=bc%-1 3320IFbc%<0THENbc%=0:IFcc%>0THENPROCa:c c%=cc%-1:VDU28,0,23,39,0,30,11,26,30:PRO Cpc(cc%):PROChc(fc%):PROCw 3330IFac%>39ANDFNrc(r%?FNmc(39,bc%,cc%) )THENPROCsc 3340IFac%>39THENac%=0:bc%=bc%+1 3350IFbc%>23THENbc%=23:IFcc%<(((m%-40)D IV40)-23)THENPROCa:cc%=cc%+1:VDU28,0,23, 39,0,31,0,23,10,26,31,0,23:PROCpc(cc%+23 ):PROChc(fc%):PROCw 3360IF(ob%=13OR(ob%=32ANDac%=0))ANDFNtc (r%?FNmc(0,bc%-1,cc%))THENuc%=r%?FNmc(0, bc%-1,cc%):PRINTTAB(ac%,bc%);CHR$(uc%);: r%?FNmc(0,bc%,cc%)=uc%:ac%=ac%+1 3370UNTILob%=27 3380PROCa 3390=qb$ 3400: 3410DEFPROCsc 3420LOCAL 3430vc$="" 3440ac%=ac%-1 3450mc%=FNmc(ac%,bc%,cc%) 3460REPEAT 3470vc$=CHR$(r%?mc%)+vc$ 3480ac%=ac%-1 3490mc%=mc%-1 3500UNTILNOTFNrc(r%?mc%) 3510PRINTTAB(ac%+1,bc%); 3520FORwc%=mc%+1TOFNmc(39,bc%,cc%) 3530r%?wc%=32:VDU32 3540NEXT 3550bc%=bc%+1 3560ac%=0 3580IFFNtc(r%?FNmc(0,bc%-1,cc%))THENuc% =r%?FNmc(0,bc%-1,cc%):PRINTTAB(ac%,bc%); CHR$(uc%);:r%?FNmc(0,bc%,cc%)=uc%:ac%=ac %+1 3590PRINTTAB(ac%,bc%);vc$; 3600xc%=FNmc(ac%,bc%,cc%) 3610FORyc%=0TOLEN(vc$)-1 3620r%?(yc%+xc%)=ASC(MID$(vc$,yc%+1,1)) 3630NEXT 3640ac%=ac%+LEN(vc$) 3650ENDPROC 3660: 3670DEFFNtc(uc%) 3680=(uc%>=129ANDuc%<=135) 3690: 3700DEFFNrc(uc%) 3710=(uc%>=33ANDuc%<=126) 3720: 3730DEFPROCjc(bc%,cc%) 3740LOCALzc%,ad% 3750zc%=FNbd 3760IFzc%>=(((m%-40)DIV40)*40)THENPROCc d:ENDPROC 3770IFFNmc(0,bc%,cc%)>zc%THENENDPROC 3780!&70=r%+FNmc(0,bc%,cc%)-40 3790!&72=r%+(zc%DIV40)*40 3800CALLjc 3810FORad%=FNmc(0,bc%,cc%)TOFNmc(39,bc% ,cc%) 3820r%?ad%=32 3830NEXT 3840ENDPROC 3850: 3860DEFPROCkc(bc%,cc%) 3870LOCALzc%,ad% 3880zc%=FNbd 3890IFFNmc(0,bc%,cc%)>zc%THENENDPROC 3900IFzc%>=FNmc(0,bc%,cc%)ANDzc%<=FNmc( 39,bc%,cc%)THENFORad%=FNmc(0,bc%,cc%)TOF Nmc(39,bc%,cc%):r%?ad%=32:NEXT:ENDPROC 3910!&70=r%+FNmc(0,bc%,cc%) 3920!&72=r%+(zc%DIV40)*40 3930CALLkc 3940FORad%=(zc%DIV40)*40TO(zc%DIV40)*40 +40 3950r%?ad%=32 3960NEXT 3970ENDPROC 3980: 3990DEFPROCcd 4000SOUND1,-10,101,5 4010ENDPROC 4020: 4030DEFPROCoc(ac%,bc%,cc%) 4040!&70=r%+FNmc(0,bc%,cc%) 4050?&72=ac%+1 4060CALLoc 4070ENDPROC 4080: 4090DEFPROCdd(ac%,bc%,cc%) 4100IFac%=39THENr%?FNmc(39,bc%,cc%)=32: ENDPROC 4110!&70=r%+FNmc(0,bc%,cc%) 4120?&72=ac% 4130CALLdd 4140ENDPROC 4150: 4160DEFFNqc(cc%) 4170IFcc%<0THENcc%=0 4180IFcc%>(((m%-40)DIV40)-23)THENcc%=(( (m%-40)DIV40)-23) 4190=cc% 4200: 4210DEFFNic(ac%,bc%,cc%,ob%,dc%,ec%) 4220LOCALuc% 4230IFob%>=3ANDob%<=9ANDNOTdc%ANDNOTec% THENVDU126+ob%:r%?FNmc(ac%,bc%,cc%)=126+ ob%:ac%=ac%+1 4240IFob%>=3ANDob%<=9ANDdc%ANDNOTec%THE NVDU142+ob%:r%?FNmc(ac%,bc%,cc%)=142+ob% :ac%=ac%+1 4250IFNOTdc%ANDec%ANDob%=12THENPROCa:PR OCed:VDU26,12:PROCgc(cc%):PROChc(fc%):PR OCw 4260IFob%>=10ANDob%<=11ANDNOTdc%ANDNOTe c%THENVDU126+ob%:r%?FNmc(ac%,bc%,cc%)=12 6+ob%:ac%=ac%+1 4270IFob%>=10ANDob%<=11ANDdc%ANDNOTec%T HENVDU167-ob%:r%?FNmc(ac%,bc%,cc%)=167-o b%:ac%=ac%+1 4280IFob%>=3ANDob%<=4ANDNOTdc%ANDec%THE NVDU150+ob%:r%?FNmc(ac%,bc%,cc%)=150+ob% :ac%=ac%+1 4290IFob%>=5ANDob%<=6ANDNOTdc%ANDec%THE NVDU153+ob%:r%?FNmc(ac%,bc%,cc%)=153+ob% :ac%=ac%+1 4300IFob%>=7ANDob%<=8ANDNOTdc%ANDec%THE NVDU148-ob%:r%?FNmc(ac%,bc%,cc%)=148-ob% :ac%=ac%+1 4310IFob%=9ANDNOTdc%ANDec%THENPROCdd(ac %,bc%,cc%):PROCa:VDU31,0,bc%:PROCpc(cc%+ bc%):PROCw 4320=ac% 4330: 4340DEFPROChc(fc%) 4350IFNOTfc%THENPRINTTAB(0,24);CHR$(128 +ka%);"Press CTRL";CHR$(129);"f9";CHR$(1 28+ka%);"for help... ";ELSEPRINTT AB(0,24);CHR$(128+ka%);"Press";CHR$(129) ;"f9";CHR$(128+ka%);"to exit pixel editi ng..."; 4360ENDPROC 4370: 4380DEFPROCgc(cc%) 4390PRINTTAB(0,0); 4400!&70=r%+FNmc(0,0,cc%) 4410!&72=r%+FNmc(0,0,cc%)+960 4420CALLgc 4430ENDPROC 4440: 4450DEFPROCpc(cc%) 4460!&70=r%+FNmc(0,0,cc%) 4470CALLpc 4480ENDPROC 4490: 4500DEFFNmc(ac%,bc%,cc%) 4510=ac%+(bc%+cc%)*40 4520: 4530DEFFNnc(uc%,ob%) 4540IFuc%>128THENuc%=uc%-128 4550uc%=uc%-32 4560p%(1)=(uc%AND1)=1 4570p%(2)=(uc%AND2)=2 4580p%(3)=(uc%AND4)=4 4590p%(4)=(uc%AND8)=8 4600p%(5)=(uc%AND16)=16 4610p%(6)=(uc%AND64)=64 4620IFob%=ASC("Q")THENp%(1)=NOTp%(1) 4630IFob%=ASC("W")THENp%(2)=NOTp%(2) 4640IFob%=ASC("A")THENp%(3)=NOTp%(3) 4650IFob%=ASC("S")THENp%(4)=NOTp%(4) 4660IFob%=ASC("Z")THENp%(5)=NOTp%(5) 4670IFob%=ASC("X")THENp%(6)=NOTp%(6) 4680uc%=160+ABS(p%(1))+ABS(p%(2))*2+ABS (p%(3))*4+ABS(p%(4))*8+ABS(p%(5))*16+ABS (p%(6))*64 4690VDUuc%,8 4700=uc% 4710: 4720DEFPROCwb(qb$) 4730LOCALbb%,rb%,A%,X%,Y% 4740VDU26 4750PRINTTAB(0,24);CHR$(128+ra%);"Pleas e wait, saving message... "; 4760bb%=OPENUP("!Mesg") 4770PTR#bb%=gb% 4780INPUT#bb%,rb% 4790PTR#bb%=gb% 4800PRINT#bb%,rb%+1 4810PTR#bb%=EXT#bb% 4820PRINT#bb%,qb$ 4830BPUT#bb%,0 4840q%?0=bb% 4850q%!1=r% 4860q%!5=FNbd+1 4870A%=2 4880X%=q%MOD256 4890Y%=q%DIV256 4900CALL&FFD1 4910BPUT#bb%,152 4920CLOSE#bb% 4930ENDPROC 4940: 4950DEFFNbd 4960!&70=r%+m%+1 4970!&72=r% 4980CALLbd 4990!&72=0 5000=(!&70)-r% 5010: 5020DEFPROCh 5030LOCALbb%,rb%,fd%,gd%,hd%,cc%,ob%,ha %,qb$,id%,jd% 5040bb%=OPENUP("!Mesg") 5050PTR#bb%=gb% 5060INPUT#bb%,rb% 5070IFrb%=0THENCLOSE#bb%:ENDPROC 5080CLS 5090PROCz 5100PRINTTAB(0,2);CHR$(128+ta%);"Please wait, loading message..." 5110fd%=1 5120jd%=TRUE 5130REPEAT 5140IFNOTjd%THENVDU26:PRINTTAB(0,24);CH R$(128+sa%);"Please wait, loading messag e... "; 5150jd%=FALSE 5160REPEAT 5170gd%=PTR#bb% 5180INPUT#bb%,qb$ 5190hd%=BGET#bb% 5200PROCkd(bb%) 5210UNTILhd%=0 5220o%(fd%)=gd% 5230VDU26,12 5240cc%=0 5250PROCgc(cc%) 5260PROCld(qb$,fd%,rb%) 5270REPEAT 5280REPEAT 5290*FX21 5300ob%=GET 5310IFob%>=ASC("a")ANDob%<=ASC("z")THEN ob%=ob%-32 5320UNTIL(ob%>=136ANDob%<=139)ORob%=27O Rob%=ASC("E")ORob%=ASC("D")ORob%=3 5330dc%=INKEY(-1) 5340IFob%=3THENPROCmd:VDU26,12:PROCgc(c c%):PROCld(qb$,fd%,rb%) 5350ha%=FALSE 5360IFob%=136ANDfd%>1THENfd%=fd%-1:PTR# bb%=o%(fd%):ha%=TRUE 5370IFob%=137ANDfd%<rb%THENfd%=fd%+1:ha %=TRUE 5380IFob%=139ANDNOTdc%ANDcc%>0THENcc%=c c%-1:VDU28,0,23,39,0,30,11,26,30:PROCpc( cc%) 5390IFob%=139ANDdc%THENcc%=FNqc(cc%-12) :VDU26,12:PROCgc(cc%):PROCld(qb$,fd%,rb% ) 5400IFob%=138ANDNOTdc%ANDcc%<(((m%-40)D IV40)-23)THENcc%=cc%+1:VDU28,0,23,39,0,3 1,0,23,10,26,31,0,23:PROCpc(cc%+23) 5410IFob%=138ANDdc%THENcc%=FNqc(cc%+12) :VDU26,12:PROCgc(cc%):PROCld(qb$,fd%,rb% ) 5420IFob%=ASC("D")THENPRINTTAB(0,24);CH R$(128+pa%);"Are you sure you want to de lete this?";:id%=FNid:PROCld(qb$,fd%,rb% ):IFNOTid%THENob%=-1 5430IFob%=ASC("E")THENPRINTTAB(0,24);CH R$(128+qa%);"Are you sure you want to ed it this? ";:id%=FNid:PROCld(qb$,fd%,rb%) :IFNOTid%THENob%=-1 5440UNTILob%=27ORha%ORob%=ASC("E")ORob% =ASC("D") 5450UNTILob%=27ORob%=ASC("E")ORob%=ASC( "D") 5460IFob%=ASC("D")THENPTR#bb%=o%(fd%):P ROCnd(bb%) 5470IFob%=ASC("E")THENPTR#bb%=o%(fd%):P ROCnd(bb%):CLOSE#bb%:qb$=FNvb(qb$,0,4):P ROCwb(qb$) 5480IFob%<>ASC("E")THENCLOSE#bb% 5490PROCu 5500ENDPROC 5510: 5520DEFFNid 5530LOCALob$ 5540REPEAT 5550ob$=CHR$(GETAND&DF) 5560UNTILob$="Y"ORob$="N" 5570=(ob$="Y") 5580: 5590DEFPROCkd(bb%) 5600LOCALA%,X%,Y% 5610q%?0=bb% 5620q%!1=r% 5630q%!5=m%+1 5640A%=4 5650X%=q%MOD256 5660Y%=q%DIV256 5670CALL&FFD1 5680!&70=r%-1 5690!&72=r%+m%+1 5700CALLod 5710!&76=0 5720PTR#bb%=PTR#bb%-((m%-q%!5)-(!&74-r% )) 5730ENDPROC 5740: 5750DEFPROCld(pd$,qd%,rd%) 5760LOCALsd$ 5770IFqd%>9ANDrd%>9THENsd$=""ELSEsd$=" " 5780PRINTTAB(0,24);CHR$(128+ka%);"Messa ge ";qd%;" of ";rd%;",";sd$;"to ";pd$;" -";CHR$(129);"f0";CHR$(128+ka%);"for hel p "; 5790ENDPROC 5800: 5810DEFPROCnd(bb%) 5820LOCALrb%,td$ 5830INPUT#bb%,td$ 5840BPUT#bb%,255 5850PTR#bb%=gb% 5860INPUT#bb%,rb% 5870PTR#bb%=gb% 5880PRINT#bb%,rb%-1 5890ENDPROC 5900: 5910DEFPROCi 5920LOCALud%,vd%,wd$,rb%,pd$,hd%,xd%,ya % 5930CLS 5940PROCz 5950PRINTTAB(0,2);CHR$(128+na%);"Are yo u sure you want to tidy the"'CHR$(128+na %);"messages?":IFNOTFNidTHENENDPROC 5960PRINT'CHR$(128+na%);"Please wait, t idying messages..." 5970VDU21 5980IFFNwa("!MesgB")THEN*yd!zd 5990*RENAME !Mesg !MesgB 6000ud%=OPENIN("!MesgB") 6010vd%=OPENOUT("!Mesg") 6020ya%=BGET#ud% 6030BPUT#vd%,ya% 6040INPUT#ud%,wd$ 6050PRINT#vd%,wd$ 6060INPUT#ud%,wd$ 6070PRINT#vd%,wd$ 6080INPUT#ud%,rb% 6090PRINT#vd%,rb% 6100IFEOF#ud%THENVDU6:CLOSE#ud%:CLOSE#v d%:PROCs("DELETE !MesgB"):ENDPROC 6110REPEAT 6120INPUT#ud%,pd$ 6130hd%=BGET#ud% 6140IFhd%=0THENPRINT#vd%,pd$:BPUT#vd%,h d%:REPEAT:xd%=BGET#ud%:BPUT#vd%,xd%:UNTI Lxd%=152ELSEREPEATUNTILBGET#ud%=152 6150UNTILEOF#ud% 6160CLOSE#ud% 6170CLOSE#vd% 6180*DELETE !MesgB 6190VDU6 6200ENDPROC 6210: 6220DEFPROCmd 6230PROCu 6240PROCz 6250PRINTTAB(0,2);CHR$(128+la%);"Use th e cursor up and down keys to"'CHR$(128+l a%);"scroll through the displayed"'CHR$( 128+la%);"message. Use SHIFT to scroll"' CHR$(128+la%);"quickly." 6260PRINT'CHR$(128+la%);"Use the cursor left and right keys"'CHR$(128+la%);"to move between messages." 6270PRINT'CHR$(128+la%);"Press D to del ete the current"'CHR$(128+la%);"message and E to edit it." 6280PRINT'CHR$(128+la%);"Press ESCAPE t o return to the menu." 6290PRINTTAB(0,16);CHR$(128+ma%);"Press ESCAPE to return to"'CHR$(128+ma%);"vie wing..."; 6300*FX21 6310REPEATUNTILGET=27 6320ENDPROC 6330: 6340DEFPROCed 6350LOCALob% 6360PROCu 6370PROCz 6380PRINTTAB(0,2);CHR$(128+la%);"Use th e cursor keys to move around"'CHR$(128+l a%);"the message. Use SHIFT to move more ";CHR$(128+la%);"quickly. Use the keyboa rd to enter"'CHR$(128+la%);"text and DEL ETE to delete"'CHR$(128+la%);"characters ." 6390PRINT'CHR$(128+la%);"Use";CHR$(129) ;"f0-f6";CHR$(128+la%);"to set the text colour" 6400PRINTCHR$(128+la%);"Use SHIFT";CHR$ (129);"f0-f6";CHR$(128+la%);"to set the graphic"'CHR$(128+la%);"colour" 6410PRINTCHR$(128+la%);"Use";CHR$(129); "f7/f8";CHR$(128+la%);"for steady/flashi ng" 6420PRINTCHR$(128+la%);"Use SHIFT";CHR$ (129);"f7/f8";CHR$(128+la%);"for coloure d/black"'CHR$(128+la%);"background" 6430PRINTTAB(0,16);CHR$(128+ma%);"Press CTRL";CHR$(129);"f9";CHR$(128+ma%);"for more help or"'CHR$(128+ma%);"press ESCA PE to continue editing.."; 6440REPEAT 6450*FX21 6460ob%=GET 6470UNTIL(ob%=12ANDINKEY(-2))ORob%=27 6480IFob%=27THENENDPROC 6490CLS 6500PROCz 6510PRINTTAB(0,2);CHR$(128+la%);"Use";C HR$(129);"f9";CHR$(128+la%);"to design a graphic block" 6520PRINTCHR$(128+la%);"Use CTRL";CHR$( 129);"f0/f1";CHR$(128+la%);"to set conti guous/"'CHR$(128+la%);"separated graphic s" 6530PRINTCHR$(128+la%);"Use CTRL";CHR$( 129);"f2/f3";CHR$(128+la%);"to hold/rele ase"'CHR$(128+la%);"graphics" 6540PRINTCHR$(128+la%);"Use CTRL";CHR$( 129);"f4/f5";CHR$(128+la%);"for double/s ingle"'CHR$(128+la%);"height" 6550PRINTCHR$(128+la%);"Use SHIFT";CHR$ (129);"f9";CHR$(128+la%);"to change the" 'CHR$(128+la%);"recipient of the message " 6560PRINTCHR$(128+la%);"Use CTRL";CHR$( 129);"f6";CHR$(128+la%);"to insert a spa ce" 6570PRINTCHR$(128+la%);"Use CTRL";CHR$( 129);"f7/f8";CHR$(128+la%);"to insert/de lete a"'CHR$(128+la%);"line" 6580PRINT'CHR$(128+la%);"Press ESCAPE t o finish editing" 6590PRINTTAB(0,17);CHR$(128+ma%);"Press ESCAPE to continue editing.."; 6600*FX21 6610REPEATUNTILGET=27 6620ENDPROC 6630: 6640DEFPROCv 6650DIMuc%308 6660PROCs("LOAD SendMC "+STR$÷uc%) 6670tb=uc% 6680gc=uc%+&20 6690bd=uc%+&41 6700pc=uc%+&63 6710od=uc%+&70 6720oc=uc%+&AB 6730dd=uc%+&BE 6740jc=uc%+&D0 6750kc=uc%+&102 6760ENDPROC 6770: 6780DEFPROCj 6790LOCALbb%,ae$,be$ 6800CLS 6810PROCz 6820PRINTTAB(0,2);CHR$(128+ba%);"Your u ser ID is currently entered"'CHR$(128+ba %);"as ";db$ 6830PRINT'CHR$(128+ba%);"Please enter y our three-digit user"'CHR$(128+ba%);"ID: ";CHR$(128+ca%); 6840*FX229,0 6850ae$=FNeb(FNca(3,3)) 6860*FX229,1 6870PRINT''CHR$(128+ba%);"Your name is currently entered as"'CHR$(128+ba%);fb$ 6880PRINT'CHR$(128+ba%);"Please enter y our name:"'CHR$(128+ca%); 6890*FX229,0 6900be$=FNca(0,20) 6910*FX229,1 6920db$=ae$ 6930fb$=be$ 6940bb%=OPENUP("!Mesg") 6950PTR#bb%=0 6960BPUT#bb%,0 6970PRINT#bb%,db$ 6980PRINT#bb%,LEFT$(fb$+STRING$(20," ") ,20) 6990CLOSE#bb% 7000ENDPROC 7010: 7020DEFFNlc(qb$) 7030LOCALjb%,nb% 7040PROCu 7050PROCz 7060PRINTTAB(0,2);CHR$(128+oa%);"This m essage is currently going"'CHR$(128+oa%) ;"to ";qb$ 7070PRINT'CHR$(128+oa%);"Please enter t he user ID of the"'CHR$(128+oa%);"recipi ent:";CHR$(128+ca%); 7080jb%=POS 7090nb%=VPOS 7100PRINT''CHR$(128+oa%);"(Use 999 for all users and CCC for"'CHR$(128+oa%);"pr ogram comments)" 7110PRINTTAB(jb%,nb%); 7120=FNeb(FNca(3,3)) 7130: 7140DEFPROCk 7150LOCALbb%,wd$,rb%,pd$,hd%,mb%,ya% 7160CLS 7170PROCz 7180PRINTTAB(0,2);CHR$(128+k%);"Are you sure you want to undelete?" 7190IFNOTFNidTHENENDPROC 7200PRINT'CHR$(128+k%);"Please wait, un deleting messages..." 7210mb%=FALSE 7220bb%=OPENUP("!Mesg") 7230ya%=BGET#bb% 7240INPUT#bb%,wd$ 7250INPUT#bb%,wd$ 7260INPUT#bb%,rb% 7270IFEOF#bb%THENCLOSE#bb%:ENDPROC 7280REPEAT 7290INPUT#bb%,pd$ 7300hd%=BGET#bb% 7310IFNOTmb%THENIFhd%=255THENPTR#bb%=PT R#bb%-1:BPUT#bb%,0:rb%=rb%+1 7320IFrb%=n%THENmb%=TRUE 7330REPEATUNTILBGET#bb%=152 7340UNTILEOF#bb% 7350PTR#bb%=gb% 7360PRINT#bb%,rb% 7370CLOSE#bb% 7380IFmb%THENPRINT'CHR$(128+k%);"Warnin g - not all of the messages"'CHR$(128+k% );"have been recovered."''CHR$(128+k%);" Press SPACE to return to the menu..";:PR OCs("FX21"):REPEATUNTILGET=32 7390ENDPROC