10 REM HEX2CA by Mark Lutton (1/31/87) 20 PRINT "HEX2CA v1.0, 1/31/87, Mark Lutton" 21 PRINT "This program converts a LUCID file from .DO format (as converted by CHANGE) to .CA format.":PRINT 30 GOSUB 370 100 FILES:LINEINPUT"File to convert:";F$:IFF$=""THEN100 110 IFINSTR(F$,":")=0ANDINSTR(F$,".")=0THENF$=F$+".DO" 115 FORI=1TO6:L=ASC(MID$(F$,I,1)):IFL>96ANDL<123THENMID$(F$,I,1)=CHR$(L-32) 116 NEXT 120 GOSUB 330:GOSUB 380 130 PRINT"Working..." 140 Z9=HIMEM-Z2:CLEAR 256,Z9 150 GOSUB370:GOSUB390:GOSUB330:Z9=HIMEM:ZC=Z4+Z5+Z6:Z4=Z9:Z5=Z4+Z2-1 155 N=0:FOR Z=Z4TOZ5 160 A$=INPUT$(1,1):I=INSTR(H$,A$)-1:IFI<0THEN160 170 N=NOTN:IFNTHENA=I:GOTO160ELSEA=16*A+I:POKEZ,A:ZC=ZC+A:NEXT 180 LINEINPUT#1,A$:INPUT#1,Z:IFZ<>ZCTHENGOSUB 500:PRINT"Checksum is wrong; can't convert file.":Z9=HIMEM+Z2:CLEAR256,Z9:END 190 CLOSE:GOSUB 420:A$="run 195":GOSUB410:SAVEMB$,Z4,Z5,63012:GOSUB 410 195 GOSUB370:GOSUB390:GOSUB330 196 Z9=HIMEM+Z2:CLEAR256,Z9 197 GOSUB370:GOSUB390:GOSUB330:GOSUB420 200 I=-1694:G=INSTR(B$,"."):G$=LEFT$(B$,G-1)+" " 210 IF PEEK(I)<>160THEN300 220 K=I+3:J=0 230 IFPEEK(K+J)<>ASC(MID$(G$,J+1,1))THEN300 240 J=J+1:IFJ<6THEN230 250 POKEI+9,67:POKEI+10,65:Z=PEEK(I+2)*256+PEEK(I+1) 260 POKEZ,255:POKEZ+1,255 295 BEEP:LINEINPUT"Kill input file?";A$:IFA$="Y"ORA$="y"THENKILLF$ 297 PRINT"Done.":END 300 I=I+11:IF I<-1397THEN210ELSEPRINT"Error converting file":END 330 OPENF$FORINPUTAS1:INPUT#1,Z4,Z5,Z6:Z2=Z5+1-Z4:RETURN 370 DEFINT A-Y:H$="0123456789ABCDEF":RETURN 380 F$=F$+CHR$(0):FORJ=1TOLEN(F$):POKEJ-185,ASC(MID$(F$,J)):NEXT:RETURN 390 F$="":J=-184 391 A=PEEK(J):IFA=0THENRETURNELSEF$=F$+CHR$(A):J=J+1:GOTO391 400 Z9=HIMEM+Z2:CLEAR 256,Z9:RETURN 410 A$=A$+CHR$(13):FORI=1TOLEN(A$):POKE2*I-87,ASC(MID$(A$,I)):POKE2*I-86,0:NEXT:POKE-86,I-1:RETURN 420 B=INSTR(F$,":"):B$=MID$(F$,B+1) 421 B=INSTR(B$,"."):IF B=0THENB$=B$+".CO" 422 RETURN 500 SOUND9394,8:RETURN