ALDL to serial interface

OK, here it is. It's more complex than it really needs to be, but the extra protection and noise tolerance are worth it, in my opinion.
All values are nominal and work for me. The left side of the diagram goes to the 'diagnostic data' terminal on the ALDL, the right to the PC. I drive the VBAT from the ALDL terminal also.

DesignationValue
IC1NM232C
IC2TLC27M2
VR1LM2931A
VDR1V33ZA5 (26V)
R1510R
R2510R
R3820R
R4360R
R520K
R630K
R710K
R8360K
R920K
R102K
R112K
R1210K
R13100R
R14100R
C182pF (ceramic)
C20.47uF (250V polypropylene)
C3100uF (25V electrolytic)
ZD1BZX85C30
ZD2BZX85C30
D1BAT85
T1S3643