1 'CO2HEX.NEC - By Gary Weber 11/23/92 2 'Based on CHANGE.100 by Rick Perry 3 'Converts .CO programs into HEX files 4 'which can be sent via modem. 5 'Use CHGHEX.NEC to convert back to 6 'the .CO file. 7 '(Borrowed some code from S.Michael 8 'Sarna's COTOBA program for the NEC) 10 SCREEN,0:CLS 20 CLEAR256,62336!:LINEINPUT".CO Program name: ";A$:PRINT:IFINSTR(A$,".")=0THENA$=A$+".CO" 30 ONERRORGOTO50:OPENA$FORINPUTAS1 40 CLOSE:EXEC8859:A=PEEK(63911!):GOTO60 50 IFERR=55THENRESUME40 60 IFA=255THENPRINT"There is no .CO program with that name":GOTO20 70 IFA<>160THEN40 80 DIR=PEEK(63912!)+256*PEEK(63913!)+1:LC=PEEK(DIR)+256*PEEK(DIR+1):Z1=PEEK(LC)+256*PEEK(LC+1) 90 IFZ1<32767THENPRINT"Starting address is invalid!":GOTO20 100 CLEAR256,Z1 110 ONERRORGOTO240 120 DIR=PEEK(63912!)+256*PEEK(63913!)+1:LC=PEEK(DIR)+256*PEEK(DIR+1):Z1=PEEK(LC)+256*PEEK(LC+1):Z2=PEEK(LC+2)+256*PEEK(LC+3):Z3=PEEK(LC+4)+256*PEEK(LC+5) 130 Z4=Z1+Z2:FORX=DIR+2TODIR+7:A$=A$+CHR$(PEEK(X)):NEXTX 140 PRINT"File Dir File Load Len Exec " 150 PRINT"Name Point Loc Point Point" 160 PRINTA$; 170 PRINTUSING" ##### ##### ##### ##### #####";DIR;LC;Z1;Z2;Z3 180 BLOADA$:PRINT 190 GOSUB230:LINEINPUT"HEX output file: ";A$:IFA$=""THEN260ELSEOPENA$FOROUTPUTAS1 200 PRINT#1,Z1;Z4;Z3:ZC=Z1+Z4+Z3:J=0:PRINT"Working...":FORZ=Z1TOZ4:A=PEEK(Z):ZC=ZC+A:X=A\16:Y=AAND15:PRINT#1,MID$(H$,X+1,1)MID$(H$,Y+1,1);:J=J+1:IFJ=39THENJ=0:PRINT#1, 210 NEXT:IFJ<>0THENPRINT#1, 220 PRINT#1,ZC:PRINT#1,CHR$(26);:CLOSE:BEEP:PRINT"Done!":CLEAR500,62336!:GOTO260 230 DEFINTA-Y:H$="0123456789ABCDEF":RETURN 240 IFERR=7THENPRINT"Out of Memory":BEEP:GOTO260 250 PRINT"Error"ERR"in line"ERL 260 END