0 'DOCO.BA converts .CO files to .DO 1 'format for easy transmission by 2 'modem or RS232. It also reconverts 3 'the .DO file (creating a .CO file 4 'identical to the original). 5 ' 6 ' ******************************** 7 ' ** Gord MacSwain 72155,1461 ** 8 ' ** 151 Cass Avenue ** 9 ' ** Agincourt, Ontario M1T 2B5 ** 10 ' ******************************** 11 'Revisions for Model 200 by Wm. Linden 72737,2150 15 MAXFILES=1:CLS:PRINT:PRINTTAB(10);CHR$(27)+"p";"***** DOCO *****";CHR$(27)+"q" 20 PRINTTAB(10);CHR$(27)+"p";"macswain enterprises";CHR$(27)+"q":PRINT:LINE(57,5)-(181,25),1,B 25 LINE(60,7)-(179,7):LINE(59,7)-(59,23) 30 PRINTTAB(8);"CO "CHR$(154)" DO or DO "CHR$(154)" CO ":PRINTTAB(8);" TO QUIT";:ONERRORGOTO340:CLOSE 40 K$=INKEY$:IFK$="L"ORK$="l"THEN200ELSEIFK$="S"ORK$="s"THEN50ELSEIFK$=CHR$(27)THENMAXFILES=0:MENUELSE40 50 Z=62133:PRINT:INPUT" CO Filename (Caps, No Ext)";A$ 60 FORX=0TO495STEP11 70 IF(PEEK(X+Z)AND160)=160THENGOSUB100 80 NEXTX 90 PRINTTAB(13);"FILE NOT FOUND";:FORW=1TO500:NEXTW:GOTO15 100 B$="":A=LEN(A$):FORY=1TOA:B$=B$+CHR$(PEEK(X+Z+2+Y)):NEXTY 110 IFA$<>B$THENRETURN 120 IFA<6ANDPEEK(X+Z+2+Y)<>32THENRETURN 130 B=(PEEK(X+Z+2)*256)+PEEK(X+Z+1) 140 LD=(PEEK(B+1)*256)+PEEK(B) 150 X=6+(PEEK(B+3)*256)+PEEK(B+2):H$="0123456789ABCDEF":N=HIMEM:IFN>MAXRAM-XTHEN:PRINT"HIMEM IS SET TO ";N:PRINT"MUST BE ";MAXRAM-X;" OR BELOW":PRINT"SET HIMEM AND TRY AGAIN!":MAXFILES=0:END 160 INPUT"Create DO Filename (No Ext)";V$:IFV$=""THENV$=A$ 170 FORY=0TOX-1:POKEN+Y,PEEK(B+Y):NEXTY:OPEN"RAM:"+V$+".DO"FOROUTPUTAS1 180 FORY=0TOX-1:G=G+1:C$="":C$=C$+MID$(H$,((PEEK(N+Y)AND240)/16)+1,1)+MID$(H$,(PEEK(N+Y)AND15)+1,1) 185 PRINT#1,C$;:IFG=16THENPRINT#1,",";:G=0:NEXTY:ELSENEXTY 190 PRINT#1,CHR$(26):CLOSE1:PRINTTAB(15);"FILE SAVED";:FORW=1TO500:NEXT:GOTO15 200 PRINT:INPUT" Input DO Filename (No Ext)";V$ 210 OPEN"RAM:"+V$+".DO"FORINPUTAS1 220 INPUT#1,B$ 230 H$="BCDEF":R=LEN(B$) 240 X=1:GOSUB320:LD=A*16+B:X=3:GOSUB320:LD=((A*16+B)*256)+LD:IFLD, or ":INPUT"Create CO Filename (No Ext)";F$:IFF$=""THENF$=V$ 280 Z=LD:FORX=13TORSTEP2:GOSUB320:POKEZ,A*16+B:Z=Z+1:NEXTX 290 INPUT#1,B$:R=LEN(B$):FORX=1TORSTEP2:GOSUB320:POKEZ,A*16+B:Z=Z+1:NEXTX 300 IFEOF(1)THEN310ELSE290 310 PRINTTAB(4);"FILE CREATED IF NO ERROR SHOWING":SAVEMF$,LD,LD+LN-1,ST:GOTO15 320 IFMID$(B$,X,1)>"9"THENA=10+INSTR(H$,MID$(B$,X,1))ELSEA=VAL(MID$(B$,X,1)) 330 IFMID$(B$,X+1,1)>"9"THENB=10+INSTR(H$,MID$(B$,X+1,1)):RETURNELSEB=VAL(MID$(B$,X+1,1)):RETURN 340 PRINTTAB(14);"ERROR #";ERR:FORZ=0TO500:NEXT:CLOSE:RESUME10 350 PRINT"START ADDRESS IS";LD:PRINT"HIMEM IS SET TO ";HIMEM:PRINT"SET HIMEM AND TRY AGAIN!":MAXFILES=0:END