10 SCREEN ,0:CLS 20 CLEAR 256,-3200 30 ON ERROR GOTO 580 40 'Copyright 1984, S. Michael Sarna 50 'Placed in the public domain 11-21-84 60 INPUT".CO Filename to convert to BASIC";A$ 70 A$=A$+".co" 80 OPENA$FORINPUT AS #1 90 CLOSE:EXEC8859:A=PEEK(63911!) 100 IF A=255 THEN PRINT"No .CO file with that name":RUN20 110 IF A<>160 THEN 90 120 LP=PEEK(63913!)*256+PEEK(63912!)+1 130 FL=PEEK(LP+1)*256+PEEK(LP) 140 CL=PEEK(FL+1)*256+PEEK(FL) 150 IF CL<33724! THEN PRINT "Can't load ROM":RUN20 160 CLEAR 256,CL 170 ON ERROR GOTO 580 180 LP=PEEK(63913!)*256+PEEK(63912!)+1 190 FL=PEEK(LP+1)*256+PEEK(LP) 200 CL=PEEK(FL+1)*256+PEEK(FL) 210 LE=PEEK(FL+3)*256+PEEK(FL+2) 220 EX=PEEK(FL+5)*256+PEEK(FL+4) 230 FOR X=LP+2 TO LP+7:A$=A$+CHR$(PEEK(X)):NEXTX 240 PRINT"File Dir. File Load Len. Exec." 250 PRINT"Name Point Loc. Point Point" 260 PRINT A$; 270 PRINTUSING" ##### ##### ##### ##### #####";LP;FL;CL;LE;EX 280 INPUT"BASIC file (in '.DO' format) to save to:";B$ 290 BLOAD A$ 292 ' KILL A$+".co":'If OM Error 300 CLS:PRINT"Working on line number:" 310 X=1 320 OPEN B$ FOR OUTPUT AS #1 330 Q=50*(CL/50-INT(CL/50)) 340 FOR M=CL TO CL+LE-1 350 H=PEEK(M):GOSUB610 360 IF 50*(M/50-INT(M/50))=Q THEN PRINT#1,CHR$(13)CHR$(10)X"data";:PRINTX;:X=X+1 370 PRINT#1,H$; 380 IF((50*((M+1)/50-INT((M+1)/50))<>Q)AND(M<>CL+LE-1))THEN PRINT#1,","; 390 NEXT M 400 PRINT #1,"" 410 PRINT #1,X"clear256,"CL 420 PRINT X; 430 PRINT #1,X+1"forx="CL"to"CL+LE-1 440 PRINT X+1; 450 PRINT #1,X+2"readh$:gosub"X+4":pokex,h:nextx" 460 PRINT X+2; 470 PRINT #1,X+3"bsave "CHR$(34)A$CHR$(34)","CL","LE","EX":stop" 480 PRINT X+3; 490 PRINT #1,X+4"h=0:h1$=left$(h$,1):gosub"X+6 500 PRINT X+4; 510 PRINT #1,X+5"h=h*16:h1$=right$(h$,1)" 520 PRINT X+5; 530 PRINT #1,X+6"h1=asc(h1$):h=h+h1+32*(h1>95)+7*(h1>63)-48:return" 540 PRINT X+6; 550 PRINT #1,X+7"end" 560 PRINT X+7; 570 END 580 IF ERL=80 AND ERR=55 THEN RESUME 90 590 IF ERR=7 THEN PRINT"Out of Memory":BEEP:END 600 PRINT"Error"ERR"in line"ERL:END 610 H$="":H1=H\16:GOSUB630 620 H1=HMOD16 630 H$=H$+CHR$(H1+48-7*(H1>9)):RETURN 640 END