I checked the DCC protocol, and although it is essentially 5V 'RS232' serial it has each bit encoded as a variable pulse-width data stream ( any DCC experts are welcome to correct me if I've misunderstood ).
Getting that out of a PICAXE at the required rate could prove hard and probably impossible, but as always I'd liked to be proved wrong.
Before discovering the 18X could do high-speed serial, I had suggested using a long shift-register filled with desired bit levels which could be filled by bit-banging what would be the PWMOUT pin as the clock, then turning on PWMOUT ( or enabling another clocking source ) at the right rate to churn the data out. That would work but is complex hardware-wise.
One solution to bit-banging non-standard formats for the X1's / X2's ( a bit late to suggest it, I know ) would be to have a BITBANG command which interprets at high speed a sequence of commands which can be pre-loaded into SFR, Scratchpad, Table, Data Eeprom or somewhere. The stored commands could each be a byte -<code><pre><font size=2 face='Courier'> 0nnn nnnn : Wait N cycles
1000 -ppp : Clear Pin P
1001 -ppp : Set Pin P
1010 -ppp : Toggle Pin P
1100 -iii : Wait for In Pin I = 0
1101 -iii : Wait for In Pin I = 1
1111 ---- : Finished </font></pre></code> Plenty of scope there for a better thought out design, more complex or simpler.
I had primarily envisaged this as being useful for bit-banging out non Sony IR streams, but I guess there are other uses.
An alternative would be a block of bytes with the bit-stream in them, then simply spool them out at the desired rate.