Please copy the req.library to your libs: directory. Start up option: pmdcom - program will open window on custom screen. pmdcom w - program opens window on workbench screen. If the rexxport could not be opened, it will say 'rexxport not active'. On startup, the program tries to run the arexx script 'init.pmd'. Of course, if rexx is not active, no init file is run and you can't use the macros. The name of the rexxport is 'pmdcom'. The file extension for macros is 'pmd'. Notice the 'macro' menu. You can launch 10 arexx macro's from here. Also, you may redefine the text and macros associated with each item. Here is a list of commands the port will respond to: quitcom - end program send - send text to serial port. ^M sends return. ^C sends control-c etc. ex. send 'ATDT1234567^M' download - download file. supply a filename. upload " " echo - print text in window getstr - pop getstr requester with prompt. ex. getstr hello say result macro - set macro menu. ex. macro 1 dial dial now item 1 of the macro menu says 'dial' and it runs dial.pmd protocol - set protocol. ex. protocol xprzmodem.library TN,AY,SN,RN, etc. setserial - set serial port : setserial 2400 1 sets serial port to 2400,8,n,1 the second number corresponds to the menu item 'set'(1-4) capon - turn on capture,supply a file name capoff waitstr - wait for string to arrive on serial port,with timeout ex. waitstr 1200 60 wait for the string '1200', or return error after 60 seconds. pause - pause for specified seconds. Please also note that xpr_setserial is not implemented, so you must have the program set to 8,n,1 or the protocol will fail. Also, a previous version of this program had a bug that would usally blow up the machine if you tried to abort a transfer.I cleaned up that mess and some other stuff. Whene I learn how to program, maybe I won't make those mistakes. If anyone wants the C source for this,leave me a message.