[net.micro.cbm] Generating a BREAK on the C64

@RUTGERS.ARPA:prindle@nadc (03/12/85)

From: prindle@NADC

This is a reply to gitpyr!wutka@topaz.  To generate a break, all that is
necessary is to toggle the appropriate bit (transmitted data) on the CIA
chip that is driving the RS-232 modem.  The code to do this is shown
below (Eric, you'll recognize this!):

	lda $dd00	;turn off bit 2
	and #$fb
	sta $dd00
	ldy #250	;delay
loop2	ldx #250
loop1	dex
	bne loop1
	dey
	bne loop2
	lda $dd00	;turn on bit 2
	ora #$04
	sta $dd00

If your timing of the BREAK signal is critical, you can adjust the constants
(currently 250) to get the exact delay you want, although most uarts will
detect BREAK anytime the stop bit is missing, so for the slowest baud rate
conceivable of 50 bps, a 10 bit frame would be 1/5 second, so 1/4 second 
on up should be adequate for any system to detect break.  You don't want it
to be too long, because your RS-232 input buffer could be filling up while
you are hanging around in the delay loop, and at 1200 baud it doesn't take
very long (~2 seconds) to fill.  Hope this makes it clear.

Frank Prindle
Prindle@NADC.arpa