Due to the requests I have received concerning how to download data,
and  my own dilemma of downloading PC wav files, this  file transfer
program  using the KERMIT protocol was written. Prior to this, I had
to  convert  files  to the "INTEL" hex  format ( I refer  to it as a
papertape  reader)  and  use  the reader  normally used  for code to
transfer  the data. This  took  awhile because  for each 16 bytes of
data there are 44 bytes in  a  hex file. This program is  written in
assembly, the  highest  level  language  there  is :-) and  uses the
little  known instruction "movx @r0,a" where P2 is  modified  to the
page address. (I would  have designed two 16 bit  regs) I've   heard
this may not work on some clone '51's. I use the METALINK  assembler
though any should work and  all the associated files are included in
the   main   programs   I51RECV.ASM  for   receiving   files   and
I51XMIT.ASM  for  transferring  files  to  the remote. All that is
needed is all the files be in the same directory. Either hex file is
then loaded to the 8051 using the hex reader  previously  mentioned.
The fopen  function is  a pointer  initialization to where in memory
the  data should go. The  FWRITE function then moves the packet data
to  that  memory. The  fread gets  data from  memory  for subsequent
encoding. The FCLOSE  does  nothing at present but could be used for
other types  of memory. The file I51HEDR.INC  needs  to be changed
to suit your specific memory  configuration. As  an example  my test
unit has 32k of ram memory and a small bootloader rom that is switch
off after loading into ram. PSEN is or'd  with RD so  that  code can
be  executed in  ram, hence  the close  range of rom to  ram with no
overlap. My  monitor is  from 0000h to 1fffh.  2000h to 2fffh is for
floating point routines and extended math functions. The kermit code
is loaded at  3000h  to 33ffh and the data for kermit is at 3400h to
35ffh. 3600h to 3fffh  is still available, but for simplicity, files
from KERMIT are loaded starting  at 4000h and can go to 7fffh. Thats
a maximum of a 16k file  (about a two second  wav file  at 8000khz).
After  fixing  my  monitor to accept 8 bit data (by removing the anl
a,07fh), ascii  text  and  binary image files download successfully.
I'll be adding  a  front-end  that'll  request the start address and
direction. 

If you have any questions, my email addresses are:

glp@sleepy.anest.ufl.edu	! decmail smtp - preferred
pugh.anest1@wpo.health.ufl.edu	! word perfect office - mnotify=NO
greg@anest1.anest.ufl.edu	! pegasus internet mail - base64

A zip file is provided of all files in I51.ZIP