8-Bit Software Online Conversion

:0.$.3to7 - Listing

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