Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10 beta 3/9/83; site sdcrdcf.UUCP Path: utzoo!linus!decvax!ittvax!dcdwest!sdcsvax!sdcrdcf!darrelj From: darrelj@sdcrdcf.UUCP Newsgroups: net.micro.apple Subject: Re: Re(n): //c modem problems Message-ID: <1300@sdcrdcf.UUCP> Date: Mon, 10-Sep-84 08:40:13 EDT Article-I.D.: sdcrdcf.1300 Posted: Mon Sep 10 08:40:13 1984 Date-Received: Sun, 16-Sep-84 09:35:07 EDT References: Reply-To: darrelj@sdcrdcf.UUCP (Darrel VanBuer) Organization: System Development Corporation, Santa Monica Lines: 48 Summary: >From the various descriptions of the problem, the Apple is providing one half the color burst frequency instead of 1.8432Mhz for baud rate generation. The former is easily derived from the 4x color burst crystal used in all Apples (makes generation of color images an incidental (but wanted) side effect of the B&W video circuitry. The latter is one of a half-dozen popular frequencies for Baud rate generation (1.8432MHz = 2^13 * 3^2 * 5^2) which get most popular rates exactly (e.g. 1.8432MHz/3/512 = 1200) with simple counters. (For asyncronous transmission, you normally want 16*baud). There are also three completely different circuits used for baud rate generators. a) A couple of chains of low divisor counters with output taps between most stages (e.g. once you get 9600, sucessive halvings get most other common rates b) A polynomial (mod 2) shift register which can divide by almost number but requires initialization values which are hard to compute. Generally these values are hardwired into a small table. It's advantages are that you can select almost any (fixed) set of input/output relationships with less circuitry than (c). c) A general divide by n counter of 12 to 16 bits. Takes more circuitry, but easy to program. E.g. to get 1200x16 clock for most UARTs at 1200 baud, program divide by reference/(1200x16). Apple seems to be using the divisor needed for a 1.8432MHz crystal (96) with 1,789,773 Hz reference (which needs a divisor just over 93). [With type a circuitry, you can't divide by 93, so you're stuck with 1165.22 baud; with type b, your stuck if you use a part meant for 1.8432MHz, instead of paying for a custom version; with type c or custom b, you have your choice of 93 as a divisor (giving 1203 baud) or 94 (giving 1190 baud). The fastest fix is to provide the right crystal for the serial chip (note that you will need a resistor or capacitor in addition to the crystal; you will have to check the data sheet for the proper crystal hookup). It also fixes all baud rates. With a type c baud rate generator, an alternate fix is software, but waiting for Apple to produce and distribute a revised ROM will take months, and will still leave high baud rates on shakey grounds; at 9600 baud, you are stuck with dividing by 12, giving a rate 3% low again. [An amazing amount of trouble to save $5 for the crystal!!!] -- Darrel J. Van Buer, PhD System Development Corp. 2500 Colorado Ave Santa Monica, CA 90406 (213)820-4111 x5449 ...{allegra,burdvax,cbosgd,hplabs,ihnp4,orstcs,sdcsvax,ucla-cs,akgua} !sdcrdcf!darrelj VANBUER@USC-ECL.ARPA