10	  extend

20	! 04-Mar-84  23:15:56  Brian Nelson

1000	  on error go to 19000						&
	\ dim xl%(128%)							&
	\ input.recordsize%  = 4096%					&
	\ output.recordsize% = 512%					&
	\ open '_kb:' as file 12%					&
	\ print 'K11HEX - Decode Kermit-11 Hex files (RSTS/E Basic+)'	&
	\ print								&
	\ xl%(i%)         = -1% for i% = 0% to 128%			&
	\ xl%(ascii('0')) = 0%						&
	\ xl%(ascii('1')) = 1%						&
	\ xl%(ascii('2')) = 2%						&
	\ xl%(ascii('3')) = 3%						&
	\ xl%(ascii('4')) = 4%						&
	\ xl%(ascii('5')) = 5%						&
	\ xl%(ascii('6')) = 6%						&
	\ xl%(ascii('7')) = 7%						&
	\ xl%(ascii('8')) = 8%						&
	\ xl%(ascii('9')) = 9%						&
	\ xl%(ascii('A')) = 10%						&
	\ xl%(ascii('B')) = 11%						&
	\ xl%(ascii('C')) = 12%						&
	\ xl%(ascii('D')) = 13%						&
	\ xl%(ascii('E')) = 14%						&
	\ xl%(ascii('F')) = 15%						&

1020	  print 'Input  Hex  file  ? ';					&
	\ input line #12%, infile$					&
	\ print 'Output Task image ? ';					&
	\ input line #12%, outfile$					&
	\ open.in%  = 0%						&
	\ open.out% = 0%						&
	\ infile$  = cvt$$(infile$,-1%)					&
	\ outfile$ = cvt$$(outfile$,-1%)				&
	\ open infile$	for input as file #1%,				&
			recordsize  input.recordsize%,			&
			mode 8192%					&
	\ open outfile$	as file #2%, recordsize output.recordsize%	&



1040	  while -1%							&
	\  offset% = 0%							&
	\  for i% = 1% to 16%						&
	\    input line #1, rec$					&
	\    chk% = 0%							&
	\    for j% = 1% to 32%						&
	\	k%  = (j% * 2%) - 1%					&
	\	b%  = xl%( ascii(mid(rec$,k%+0%,1%)) ) * 16%		&
		    + xl%( ascii(mid(rec$,k%+1%,1%)) )			&
	\	chk% = chk% + b%					&
	\	field #2%, offset%+(j%-1%) as junk$, 1% as dat$		&
	\	lset dat$ = chr$(b%)					&
	\    next j%							&
	\    c$ = right(rec$,66%)					&
	\    check% = xl%( ascii(mid(c$,6%,1%)) )			&
		    + xl%( ascii(mid(c$,5%,1%)) ) * 16%			&
		    + xl%( ascii(mid(c$,4%,1%)) ) * 256%		&
		    + xl%( ascii(mid(c$,3%,1%)) ) * 4096%		&
	\    print 'Checksum error - ';chk%,check%			&
		    if chk% <> check%					&
	\    offset% = offset% + 32%					&
	\  next i%							&
	\  put #2%							&
	\ next


19000	  er% = err							&
	\ el% = erl							&
	\ resume 19020 if er% = 11%					&
	\ print er%;' error at line number ';,el%			&
	\ resume 32767%							&

19020	  close #1%							&
	\ close #2%							&
	\ go to 32767 if el% <> 1040%					&
	\ cmd$ = 'PIP ' + outfile$ + '<104>/RTS:RSX=' + outfile$	&
	\ print 'Trying to do CCL ';cmd$				&
	\ junk$ = sys(chr$(14%) + cmd$ )				&
	\ go to 32767							&


32767	  end
