10 REM >MesgRdr 20 ONERROR CLOSE#0:VDU3,15,12:IFERR<>17REPORT:PRINT" at ";ERL:END:ELSEEND 30 REM v1.00 40 DIM r%(25) 50 REPEAT:MODE0:PROCreadsubject:PROCreadascii :UNTIL0 60 : 70 DEFPROCreadsubject:LOCAL C%,p%,i%,id$ 80 G%=OPENIN("!Mesg") :IFG%=0PRINT'"!Mesg file Not Found!":END 90 S%=((EXT#G%)-256)/4096 100 i%=BGET#G% :IFi%<>1PRINT'"Version 1 data files only!":END 110 INPUT#G%,id$,name$ :PTR#G%=256 120 I%=0 :id$="":PROCdh("* * M E S S A G E S * *") 130 FOR R%=1 TO S% 140 INPUT#G%,id$ :C%=BGET#G%:IFC%>0GOTO200 150 id$="" 160 FORp%=1TO76:C%=BGET#G% 170 IFC%>31 AND C%<127 id$=id$+CHR$C% ELSE id$=id$+" " 180 NEXT 190 PRINT"<"CHR$(I%+65)">"id$ :r%(I%)=R% :I%=I%+1 200 PTR#G%=256+R%*4096 210 NEXT :CLOSE#0 220 ENDPROC 230 : 240 DEFPROCreadascii:LOCAL C%,i%,l%,c$,id$ 250 PRINT'" =All or select A to "CHR$(I%+64)" ?"; 260 REPEAT :R%=((GETAND223)-65):UNTILR%<=I%-1 OR R%=25 270 CLS:G%=OPENIN("!Mesg") 280 PRINT''"SEND TO PRINTER Y/N ?";:*FX21 290 REPEAT:a%=INSTR("YN",CHR$(GETAND223)):UNTILa% :CLS 300 i%=BGET#G%:INPUT#G%,id$,name$ 310 PRINT" " :VDU(a%+1) :IFa%=2VDU31,7,0,14:PRINT" to scroll."' 320 IFR%=25 r%=S% :i%=0 :ELSE r%=r%(R%) :i%=r%-1 330 FOR N%=i% TO r%-1 :PTR#G%=256+N%*4096 340 INPUT#G%,id$ :C%=BGET#G%:IFC%>0GOTO400 350 l%=0 :c$="" 360 REPEAT:C%=BGET#G% :l%=l%+1 370 IFC%>32 AND C%<127 VDUC% ELSE VDU32:c$=c$+" ":IFLENc$=40PRINT:c$="" 380 IFl%MOD40=0c$="" 390 UNTILC%=152:PRINT' 400 NEXT:CLOSE#0 410 PRINT:VDU3,15:PROCkey:ENDPROC 420 : 430 DEFPROCkey:*FX21 440 PRINT"Press ";:IF GET 450 ENDPROC 460 : 470 DEFPROCdh(A$) :LOCALA%,X%,Y%,N:VDU31,22,0 480 FOR N=1 TO LEN(A$) :?&70=ASC(MID$(A$,N)) :A%=10 :X%=&70 :Y%=0 :CALL&FFF1 490 VDU23,255,?&71,?&71,?&72,?&72,?&73,?&73,?&74,?&74,255,10,8 500 VDU23,255,?&75,?&75,?&76,?&76,?&77,?&77,?&78,?&78,255,11 510 NEXT:PRINT'' 520 ENDPROC