10 GOTO 1000: REM an UNLOAD program for creating Intel .HEX files - John Chenoweth 09/11/85 400 IF DX>65535 THEN PRINT"BAD DEC":RETURN ELSE REP=4:GOTO 405 402 IF DX>255 THEN PRINT"BAD DEC":RETURN ELSE REP=2 405 HEX$="":HSUM=DX:FOR J=1 TO REP 410 HT=HSUM-INT(HSUM/16)*16:HSUM=(HSUM-HT)/16:HT=HT+48 420 IF HT>57 THEN HT=HT+7 430 HEX$=CHR$(HT)+HEX$:NEXT J 450 RETURN 990 PRINT "BAD ADDRESS: try again":PRINT:PRINT 1000 INPUT"Enter start,end (decimal):";FIRST,LAST 1010 IF FIRST > LAST OR FIRST < 0 OR LAST < 0 OR FIRST > 65535 OR LAST > 65535 THEN 990 1020 INPUT"Enter filename:";FIL$ 1030 FIL$=LEFT$(FIL$,6)+".DO" 1040 OPEN FIL$ FOR OUTPUT AS 1 1100 PNTR=FIRST 1110 LYNE$=":":CHKSUM=0 1120 NUMBYT=16:IF LAST-PNTR < 15 THEN NUMBYT=LAST-PNTR+1 1130 IF NUMBYT < 1 THEN 5000 ELSE PRINT PNTR 1140 DX=NUMBYT:CHKSUM=CHKSUM+NUMBYT:GOSUB 402:LYNE$=LYNE$+HEX$ 1150 DX=PNTR\256:CHKSUM=CHKSUM+DX:DX=PNTR-(256*DX):CHKSUM=CHKSUM+DX:DX=PNTR:GOSUB 400:LYNE$=LYNE$+HEX$+"00" 1200 FOR BYT=1 TO NUMBYT 1210 DX=PEEK(PNTR):CHKSUM=CHKSUM+DX:GOSUB 402:LYNE$=LYNE$+HEX$ 1230 PNTR=PNTR+1:NEXT BYT 1300 DX=(256-(CHKSUM MOD 256)) MOD 256:GOSUB 402:LYNE$=LYNE$+HEX$+CHR$(13)+CHR$(10) 1310 PRINT#1,LYNE$;:GOTO 1110 5000 CLOSE #1 9999 END