Hi!
I did a quick dive into the Arduino scene - and most of your "problems" seem associated with input/output. Of course, a micro controller hasn't got a screen or keyboard. It communicates with serial.So, this is what I've come up with to get you started:
1. Only port the library and 4th.c (to begin with. Later - maybe 4tsh.c is fun). Note you need to port the editor sources as well. I dunno whether an Arduino is 16bit, 32bit or 64bit. My guess is 32bit. Note you can use the generated editor.h (or mon.h) from any 32bit platform;
2. 4th.c does most of the stdin/stdout I/O. I/O related members are comp_4th.c (loading 4tH files), dump_4th.c (debugging messages), exec_4th.c (execution I/O), load_4th.c (loading HX files), save_4th.c (saving HX files) and cgen_4th.c (saving C sources). I think for an Arduino port you could drop the three last ones without losing too much functionality;
3. dump_4th.c: vfprintf()
comp_4th.c: fopen(), fseek(), ftell(), fread(), fclose()
exec_4th.c: fseek(), ftell(), fflush(), fputc(), fgetc(), ungetc() (you can forget that last one if you don't wanna read old Apple text files);
4th.c: fgets(), fopen(), fclose(), fflush(), vfprintf()
Hope this helps!
Hans Bezemer