12.5. How do I build a 2400/9600 bps RS-232 interface cable?
+ A new programming technique makes it possible to acheive 9600 bps on an
+ unexpected Commodore 64 without the use of a Swiftlink cartridge.
+ Daniel Dallmann of Denmark is the originator of this technique and is
+ currently writing modem drivers for some of the popular C64 terminal
emulation programs to take advantage of this new technique.
+ The interface described below is a little more complex than the one
+ in Section 12.4, but has many advantages:
+ * The interface generates proper EIA232 (RS-232) voltage levels.
+ The one in Section 12.4 relies on the ability of most newer RS232
+ equipment to handle lower voltages.
+ * The following interface can be used as a direct replacement for the
+ interface in Section 12.4, and will work will all existing
+ telecommunications programs at up to 2400 bps, while providing the
+ necessary interfacing to allow suitably equipped applications to
+ operate at up to 9600 bps.
+ * if you currently own a normal RS232 interface, that interface can be
+ modified to incorporate the new interfacing for 9600 bps operation.
+ (in some cases one line of the old interface has to be disconnected,
+ see note **1 )
+ 9600 bps is the maximum limit this type of technique due to the timing
+ limitations of the C64. The delay between the activation of the NMI-handler
+ and the falling edge of rxd is too long. The handler must be called in
+ less than 100 cycles. That's no problem at 9600 bps, but for 19200 baud
+ (the next higher baud rate), you have only 50 cycles, and that's impossoble
+ (because of VIC-DMA ). On a C128 in fast mode 38400 baud may be possible,
+ but I don't have a C128, so someone else has to try it out.
+ Schematic of a very simple RS232-Interface:
+ userport MAX232 rs232 9pin 25pin
+ +----------+
+ ! !
+ (C) pb0--+ ! !
+ ! ! /! !
+ (B) flag2--*--------------------O< !--------- rxd 2 3
+ ! 9! \! !8
+ *7* sp2--+ ! !
+ ! !
+ *6* cnt2--+ ! !
+ ! ! !
+ *L* pb7--+ ! !
+ ! !\ !
+ (M) pa2--*--------------------! >O--------- txd 3 2
+ ! 11! !/ !14
+ *5* sp1--+ ! !
+ 74ls00 ! !
+ +-----+ ! !
+ ! ! ! !\ !
+ (D) pb1-*------>O-------------! >O--------- rts 7 4
+ ! 1! !3 10! !/ !7
+ +----! ! ! !
+ 2! ! ! /! !
+ (K) pb6--------O