This program allows you to control the X-10 Powerhouse wireless home control interface. The program presents a menu which allows you to issue direct (immediate) commands, set/read the real-time clock in the X-10 interface, program an event (up to 16 devices to be turned ON/OFF/BRIGHT/DIM at a specific time on one or more days), clear a previously programmed event, read/write an event file from/to disk, clear all programmed events, and set/change the base housecode. The program is fairly self-explanatory and prompts you as required, but please remember that it was originally written for my use only (I'm SUPPOSED to know how it works!). It is not necessary to know the X-10 command protocol to use the program. The program was originally written in small-C (CP/M version) and had two items that were specific to my hardware configuration - two small assembly language driver routines that do the actual serial port I/O and a few "#define" statements in the C program that performed cursor positioning and turned video attributes (reverse video & blink) on and off for my terminal. In order to make the program more generic and easier to port to any CP/M system, I have placed the I/O driver routines at the beginning of the .COM file (X-10V43.COM). I have also deleted the terminal-specific code from the C program (it's not as pretty, but it works!). To customize the program for your system, all you have to do is modify the two I/O routines for the characteristics of your computer's serial port. The first routine is the output routine. It begins at location 0103h with the character to be output in the second word on the stack. The POP POP PUSH PUSH sequence of instructions at the beginning of the routine puts the character to be output in the 'L' register and MUST be maintained. This routine can be up to 32 bytes long. The second routine is the input routine. It begins at location 0123h and must return the input character in the 'L' register (the 'H' register must contain 0). The routine must wait until an input character becomes available. This routine can be up to 32 bytes long. Both routines can use any registers necessary, subject to the restrictions stated above. The source code for the I/O routines for my system are in X-10IO.MAC and can be used as examples. The characteristics of the X-10 interface serial port are: 600 baud, 8 bits, no parity and 1 stop bit. I am releasing X-10V43.COM into the Public Domain with the following caveats: a. I do not have the time (now) to generate any real documentation on the program, so you're somewhat on your own. I WILL try to answer any reasonable inquiries left on CompuServe, however. b. I make no claims as to the correctness of the operation of the program; it has worked properly through all of my testing, but there may be a few hidden bugs. If anyone discovers what appears to be a bug, please leave me a message on CompuServe and I'll investigate when I can find the time. (P.S.: Several bugs relating to ACK messages sent back to the computer by the X-10 interface have been identified and corrected.) Eric Schuyler [70127,2115] 16 January 1987