10 REM" [0x16] [0x07] [0x0E] 20 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] Convert files to ASCII V.3 30 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] ƒConvert files to ASCII V.3 40 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] By C.J.Richardson. 50 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] ƒBy C.J.Richardson. 60 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] ‚This program will convert most 70 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] ‚files containing control codes 80 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] ‚You can pass the filename of a 90 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] ‚file to use in memory at &A00. 100 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] ‚Run with Z%=1‚for a printout. 110 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] ‚Remove the REM‚ from lines 120 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] 400‚and420‚to save converted 130 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] ‚file. Change the value of 140 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] PTR#F%‚in line340‚to miss out 150 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] ‚header files etc. 0 if none. 160 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] ‚To convert from a chosen point 170 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] ‚in a file, enter the phrase to 180 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] ‚start from after entering"Y" 190 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] ‚To MARKED PRINTOUT? ‚Press 200 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] ESCAPE‚ to stop printout. 210 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] †------------------------------ 220 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] ƒThis program is Public domain. 230 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] ƒPlease do not alter it in any 240 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] ƒway. If you use any of the 250 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] ƒroutines, please mention me 260 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] ƒin the titles. Thanks,CJR. 270 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] †------------------------------ 280 DEFFNS="7to3":REM V3.02 290 REM Modified JGH 20-06-96, 19-06-98 300 *FX229,0 310 IFINKEY(0)=0:INPUT""A$:$&A00=A$ 313 A$=$&600:I%=INSTR(A$," "):IFI%:A$=MID$(A$,I%+1):$&A00=A$ 320 ONERROR:CLOSE#0:OSCLI"SPOOL":VDU3:Z%=0:IFINKEY-1=0:OSCLI"*EXEC $.!BOOT":END ELSE END 330 MODE3:VDU21:PROCass 340 VDU6,23;8202;0;0;0;19,1,3;0; 350 A$=$&A00:IFA$="" ORLENA$>80 ORASCA$<32 ORASCA$>126:PROCfile ELSE $&A00="" 360 F%=OPENIN A$:?&A50=13:?&71=F%:!&72=0:!&76=0:IFF%=0:PRINTA$" not found" 370 PRINT"MARKED PRINTOUT? Y/N":IF GET$="Y":PROCmark ELSE PTR#F%=&100:REM IF RIGHT$(A$,1)="1":PTR#F%=&10C 380 PRINTTAB(18)"Print out a teletext file by C.J.Richardson."'TAB(29)"Press SHIFT to scroll."'' 390 IFZ%=1PRINTTAB(21)"Prepare your printer and press a key.":REPEATUNTILGET:VDU2 ELSE VDU14 400 REM"*SPOOL newfile 410 REPEAT:CALLa%:PRINTTAB(40-LEN$&A00/2)$&A00:$&A00="":UNTILEOF#F%:CLOSE#F%:Z%=0:VDU3,15:*FX21 420 REM"*SPOOL 430 PRINT''TAB(23)"Press a key to return to main menu.":REPEATUNTILGET:OSCLI"EX. !BOOT":END 440 DEFPROCfile:REPEATCLS:*. 450 REPEATINPUTLINE'"Filename: "A$:IFLEFT$(A$,1)="*":OSCLIA$ 460 UNTILLEFT$(A$,1)<>"*":UNTILA$<>"":ENDPROC 470 DEFPROCass:FORL%=0TO2STEP2:P%=&900 480 [:OPTL%:.a%:JSRl12:LDA&74:BEQl10:JSR&FFE7:LDA#0:STA&74:.l10:LDY&73:.l11:STY&73 490 JSRget:.l:LDA&70:LDY&73 500 STA&A00,Y:CMP#13:BNEl9:RTS:.l9:INY:CPY#80:BCCl11:LDY#80 510 .l3:DEY:TYA:BEQl20:LDA&A00,Y:CMP#32:BNEl3:.l21:STY&75:LDA#13:STA&A00,Y:.l20:RTS 520 .l12:LDA&75:BNEl4:LDA#0:STA&73:RTS 530 .l4:LDX#0:LDY&75:INY 540 .l5:LDA&A00,Y:STA&A00,X:INX:INY:CPY#80:BNEl5:LDA#0:STA&75:LDA#32:STA&A00,X:STX&73:RTS 550 .get:LDY&71:JSR&FFD7:BCSdone:STA&70:JSRl14:LDA&70:CMP#0:BEQget:CMP#128:BCClow:LDA#32 560 .low:CMP#32:BCSok:LDA#32 570 .ok:STA&70:CMP#32:BNErts:INC&72:LDA&72:CMP#1:BEQrt:CMP#42:BNEl2:DEC&72:.l2 580 CMP#40:BNEget:INC&74 590 .done:LDA#13:STA&70:JMPl 600 .rts:LDA#0 610 .rt:STA&72:RTS 620 .l14:LDA&70:CMP#96:BNEk:LDA#95:BNEk3:.k:CMP#95:BNEk1:LDA#35:BNEk3:.k1:CMP#35:BNEk3:LDA#96:.k3:STA&70:INC&78:LDA&78:CMP#40:BNEl13:LDA#0:STA&78 630 LDA&77:BNEl16 640 .l13:LDA&70:CMP#141:BEQl15:RTS 650 .l15:INC&77:RTS 660 .l16:LDA#0:STA&77:LDX#40 670 .l17:LDY&71:JSR&FFD7:BCSdone:DEX:TXA:BNEl17:RTS 680 ]:NEXT:ENDPROC 690 DEFPROCmark:A%=0 700 INPUT"Start string ";D$ 710 REPEAT 720 IFBGET#F%=ASC(LEFT$(D$,1)):T%=PTR#F%:PROCsrchstring 730 UNTILA%=1 OR EOF#F% 740 IF EOF#F%:PRINTD$;" Not found. (Q)uit or (C)ontinue":IF GET$="Q" GROO ELSE IF EOF#F% RUN 750 PTR#F%=T%-1 760 ENDPROC 770 DEFPROCsrchstring 780 L%=1:REPEAT: 790 A%=BGET#F%:L%=L%+1 800 UNTILL%>LEN D$ OR A%<>ASC(MID$(D$,L%,1)) OR EOF#F% 810 IF L%>LEN D$ A%=1 ELSE A%=0 820 ENDPROC