Tom & Listers, Thankyou for your interest in my DTMF dialling and V23 routines. My initial brief was to get a 16C54 to work in an autodialler application, and so the code is perhaps not as efficient as it could be - having to cope with the lack of page 2 table reads on the C54, and other C54 limitations. I only had a $3 component budget to work with, so it had to be kept simple. I use the whole of the 8 bit B port to drive an R-2R resistor ladder network as this costs about 2 cents. It allows a simple connection to the telephone line using a single NPN transistor acting as an amplifying gyrator, and 2 high voltage transistors to form a hook switch. The whole lot was put on a board and built for about $5. The gyrator is key to the design, it is a single transistor circuit which simulates an inductor ie it blocks ac from flowing but passes dc. They are very useful in telecoms for powering equipment from the line - just 1 transistor and 4 passive components. The routine for DTMF and tone generation started out as the one published by Microchip in their application note. However I found that this was very poor at the higher tone frequencies and just would not get through the telecom approvals harmonics tests. I went back to basics and rewrote it using aan algorithm with 2 moving pointers which integer step their way through a 128 sample sinusoidal half wave look-up table. By varying the step size of the pointers it is possible to generate the frequencies very accurately - within the +/- 1.5% required for telecom DTMF. The V23 routine also arose from this work and will send a V23 message to line having dialled out using the DTMF routine. I am now working on another routine to demodulate V23 tones - again just using a PIC16F84A (minimum platform) and its meagre resources. If I can get this to work, a 16F84A could be used as a complete telecom modem for simple projects requiring a telephone line connection. This offers the possibilities of getting a WWW micro web server - based on Dennis Petrov's implementation and modem onto a cheap device like the 16F628. If you use a 16F628 you can send the DTMF samples to the PWM stage and save all the B port lines for driving additional hardware. You also have the means of putting a real time clock on a F628, and allowing 512 bytes for the telecoms routines, you have 3 times the application codespace than was available on the F84. If anyone has any good idea on V23 demodulation - I would be pleased to hear them. regards, Ken Boak You can follow my work, and access all the code listings and schematics by subscribing to the Rat_Ring discusssion group. www.geocities.com/kenboak/rat_ring.html -- http://www.piclist.com hint: The list server can filter out subtopics (like ads or off topics) for you. See http://www.piclist.com/#topics