10 DEFFNS="3to7":REM V1.01 20 REM Modified JGH 20-06-96 30 IFINKEY$(0)=CHR$0:INPUT""A$:$&A00=A$ 40 *FX229 50 MODE7:VDU23;8202;0;0;0; 60 HIMEM=&3000 70 DIMscr%(20),code 350,string 80 80 PROCassemble:F%=0 90 ONERROR REPORT:IFINKEY-1=0:CLOSE#F%:OSCLI"Exec $.!BOOT":END ELSE END 100 A$=$&A00:IFA$="" ORLENA$>80 ORASCA$<32 ORASCA$>126:PROCfile ELSE $&A00="" 110 PRINT'CHR$(157)CHR$(132)"Colour? Y/N"'' 120 ?&74=(INSTR("Yy",GET$)>0)AND1 130 ?&72=130 AND(?&74>0):PRINT 140 F%=OPENIN A$:IFF%=0:PRINTA$;" not found" 150 B%=&900:times%=0:back%=0:new%=0 160 ?&76=?&74:?&71=0 170 : 180 REPEAT 190 IF NOTEOF#F%:new%=1:PROCld 200 G%=&3000 210 REPEAT:CLS:?&73=0 220 REPEAT:CALLcode 230 PRINT'CHR$(?&72)$string; 240 UNTIL?&73>22 OR G%>=T% 250 depth%=(&4000*(times%-1)+G%-&3000)/(EXT#F%/100) 260 PRINTTAB(0,0)CHR$(157)CHR$(132);RIGHT$(" "+STR$depth%,2);"%";:*FX21 270 PRINT"B :„back F /„forward Esc„end";:REPEATG$=GET$:UNTILINSTR("BbFb:*/?",G$) 280 IFINSTR("Bb*:",G$) ANDG%>&3000:PROCjumpback 290 IFINSTR("Ff?/",G$):PROCjumpforward 300 UNTILG%>=T%:UNTILFALSE 310 END 320 : 330 DEFPROCld 340 IFback%:times%=times%-1:PTR#F%=scr%(times%) 350 IFnew%:times%=times%+1:scr%(times%)=PTR#F% 360 H%=EXT#F%-PTR#F%:IFH%>&3FFF:H%=&4000 370 PRINT'CHR$(157)CHR$(132)" Loading Please Wait " 380 A%=4:X%=B%:Y%=X%DIV256 390 X%?0=F%:X%!1=&3000:X%!5=H% 400 CALL&FFD1 410 D%=0:back%=0:new%=0:T%=&3000+H%+D% 420 IF PTR#F%=EXT#F%:ENDPROC 430 S%=&6FFF 440 REPEAT:D%=D%+1:S%=S%+1 450 R%=BGET#F%:?S%=R% 460 UNTIL?S%=13 OR ?S%=10 OR EOF#F% 470 S%?1=&FF:T%=&3000+H%+D% 480 ENDPROC 490 : 500 DEFPROCfile:REPEAT:CLS 510 PRINT"†8-Bit Software 80 to 40 Column"'"†Text Conversion. By C.J.Richardson."'"†Please enter filename to Convert, or"'"†'*' command (eg *DRIVE 2):"' 520 *. 530 REPEATINPUTLINE'"Filename: "A$ 540 IFLEFT$(A$,1)="*":OSCLIA$ 550 UNTILLEFT$(A$,1)<>"*" 560 UNTILA$<>"" 570 ENDPROC 580 : 590 DEFPROCjumpback 600 IFG%<=&3600 AND times%=1:G%=&3000:ENDPROC 610 IFG%>&3600:G%=G%-&500:REPEAT:G%=G%-1:UNTIL ?G%=13 OR G%=&3000:ENDPROC 620 back%=1 630 PROCld:G%=&6A00:REPEAT:G%=G%-1:UNTIL ?G%=13 640 ENDPROC 650 : 660 DEFPROCjumpforward 670 IFG%>(T%-&380):ENDPROC 680 REPEAT:G%=G%-1:UNTIL?G%=13 690 G%=G%+1:ENDPROC 700 : 710 DEFPROCassemble 720 strpos=string 730 FOR I%=0 TO 2 STEP2 740 P%=code 750 [OPTI% 760 JSR clear 770 .loop 780 JSR get 790 LDX &74:BEQ a1 800 LDA &404:CMP #13:BNE a1 810 LDX &75:BEQ a1 820 JSR chcol:JMP a2 830 .a1 840 LDX #0:STX &75 850 LDA &404:CMP #13:BNE a2 860 LDX #1:STX &75 870 .a2 880 LDA &404:CMP #13:BEQ a3 890 CMP #126:BCS a3 900 CMP #29:BEQ high 910 CMP #32:BCC a3 920 JSR atob:JMP a3 930 .high 940 LDA &71:BMI a3:\ View type 950 ASL A:BMI skip:\ Extended 960 \ Not yet set: 970 LDY #1:LDA (&80),Y:PHA:INY 980 .highLP 990 LDA (&80),Y:CMP #29:BEQ high2 1000 INY:BPL highLP:STY &71:BMI a3 1010 .high2 1020 INY:LDA (&80),Y:AND #&DF:STA &70 1030 LDA #&80:STA &71 1040 PLA:AND #&DF:CMP &70:BNE a3 1050 LSR &71 1060 .skip 1070 JSR g0:\ Skip 1080 .a3 1090 LDA &404:CMP #13:BEQ a5 1100 LDX &76:CPX #40:BEQ a5 1110 LDX &41D:CPX &451:BCC a4 1120 LDX &41C:CPX &450:BCS a5 1130 .a4 1140 JMP loop 1150 .a5 1160 LDX &76:CPX #40:BNE a6 1170 JSR back:JMP a7 1180 .a6 1190 LDA &404:CMP #13:BNE a8 1200 .a7 1210 LDX &74:STX &76:INC &73 1220 .a8 1230 RTS 1240 \ ******* subroutines ******** 1250 .clear 1260 LDX #0:STX &77 1270 LDA #13:STA string,X:RTS 1280 .get 1290 LDX &41C:STX &80 1300 LDX &41D:STX &81 1310 LDY #0:LDA (&80),Y:STA &404 1320 .g0 1330 INC &41C:BNE g1:INC &41D 1340 .g1 1350 RTS 1360 .atob 1370 INC &76 1380 LDX &77:LDA &404:STA string,X 1390 INX:STX &77:LDA #13:STA string,X 1400 RTS 1410 .chcol 1420 INC &72:LDX &72 1430 CPX #132:BNE c1 1440 LDY #133:STY &72 1450 .c1 1460 CPX #135:BNE c2 1470 LDY #130:STY &72 1480 .c2 1490 RTS 1500 .back 1510 LDX &41C:STX &82:LDX &41D:STX &83 1520 LDX &77:STX &84 1530 .bloop 1540 LDY #2 1550 .b0 1560 LDX &41C:BNE b1:DEC &41D 1570 .b1 1580 DEC &41C:DEY:BNE b0 1590 JSR get 1600 DEC &77 1610 LDA &404:CMP #32:BEQ b2 1620 LDX &77:CPX#1:BNE bloop 1630 LDX &84:STX &77 1640 LDA #127:STA string,X 1650 INX:LDA #13:STA string,X 1660 LDX &82:STX &41C 1670 LDX &83:STX &41D 1680 RTS 1690 .b2 1700 LDX &77:LDA #13:STA string,X 1710 .b3 1720 RTS 1730 ]NEXT:ENDPROC