*start* 01219 00024 US Date: 16 Jan. 1982 6:20 pm PST (Saturday) From: Stewart.PA Subject: Note on digital audio from INFO-AUDIO To: VoiceInterest^.pa Found this item in a description of personalities present at the Consumer Electronics Show: Date: 15 Jan 1982 2032-PST From: Adam N. Rosenberg Ivor Tiefenbrun (spelling?) is a character himself. He told Clay Barclay (now with Crown since his store went under) that the digital sound he was working on was "a lie" and that "every step forward is really a step backward." He panned newer tapes and newer records and newer recording techniques. (I happen to agree with almost everything he said.) He defines dynamic range as the difference between two sounds the hifi can resolve at the same time and claims that the loudest signal on a record acetate is 95 dB over the noise level (which is yet 20 dB over the softest audible sound, giving lowly records (when well pressed) a maximum loudest to softest range of 115 dB). Since the last 12 dB of digital is just abrasive noise, a 16 bit system only has 84 dB to offer of low resolution sound. Maybe we should go straight to 32 bit samples at 100 KHz? -Larry *start* 00649 00024 US Date: 18 Jan. 1982 10:01 am PST (Monday) From: Stewart.PA Subject: Alto Naming To: NetSupport.Wbst cc: VoiceProject^.pa ************************ CHANGES or MOVES *************** Use this entry if you want to change some information, such as the location (as a result of a move), or name of your machine. BEFORE CHANGE: Dahlia2 = Parc-Net3+112# ;Location: "35-2061", Owner: "VoiceProject^.pa" AFTER CHANGE: Dahlia2 = Parc-Net3+112# ;Location: "35-2061", Owner: "VoiceProject^.pa" Dahlia2 = Nest-Net+112# ;Location: "35-2061", Owner: "VoiceProject^.pa" Note: This machine is a gateway and has two network addresses. *start* 00769 00024 US Date: 19 Jan. 1982 10:46 am PST (Tuesday) From: Nelson.PA Subject: Remote voice interfaces To: Swinehart cc: Stewart, Ousterhout Dan, Im getting close the the stage where I wish to run your stuff through Lupine to make sure the stubs look OK, compile OK, and dont break the translator. I want to do this whether you have any cursory implementations with which to run a test or not. If you can flesh out some of the interfaces in the next 2 weeks, it would be very helpful. Be sure to get all the nitty types in there; even though you know what you want to do, the data structures are what make a difference to Lupine. A DF file that names the remote interfaces (and any auxiliary stuff needed for their compilation) would be ideal. Bruce *start* 01337 00024 US Date: 19 Jan. 1982 11:33 am PST (Tuesday) From: Swinehart.PA Subject: Re: Remote voice interfaces In-reply-to: Nelson's message of 19 Jan. 1982 10:46 am PST (Tuesday) To: Nelson cc: Swinehart, Stewart, Ousterhout See [ivy]thrush>thrush.df. It includes a compile order, and a place to put a call to Lupine after compiling ThrushSmarts (the only one I've applied to your thing.) I've successfully exported a ThrushSmarts, and was working on importing one (New... yet) when I had to go put out fires, stop mudslides, repair planetary orbits, etc. So I'm fairly confident that I'm in business. The only thing even mildly controversial that I think I need for Thrush is "handles" -- the ability to pass REFs to the "server" in a way that won't break the server's garbage collector. The server will never dereference, but will simply supply as an identifier once in a while. If this has problems, I'll loophole them to LONG UNINTERESTINGs, so I'm covered. It's WONDERFUL!!!! P.S. The interfaces that will have remote callers include ThrushNet, ThrushFone, ThrushConversation, and ThrushSmarts. Also the Larkxxx interfaces, although I'm not sure they compile right now -- the others do. Let me know if what's there doesn't work, is not interesting enough, or has any other troubles. Thanks, Dan *start* 01619 00024 US Date: 19 Jan. 1982 1:29 pm PST (Tuesday) From: Nelson.PA To: Swinehart.PA cc: Nelson, Stewart, Ousterhout Subject: Re: Remote voice interfaces I just translated ThrushNet, ThrushFone, ThrushConversation, and ThrushSmarts (LarkXX do not compile). There were no apparent problems, but there are a lot of TBD types in there, too. Some comments: Handles. Lupine is happy to marshal handles as such, although it always gives a warning msg during translation. Whether or not an invalid ref causes problems for the other machine depends, I belive, on what you do. For instance, I think that just storing a ref off the stack will create chaos. To use handles, you must declare them as follows: Fone: TYPE = HANDLEFone; HANDLEFone: TYPE = REF FoneObject. The scheme is that HANDLE must appear at the front of some type def, not necessarily the top level. Similar for VAR, VALUE, and RESULT params. Ropes. If you know that most of your strings are Rnames, or some other always-short type, declare them to be Rpc.ShortRope (or ShortString or ShortAtom). A ShortRope is identical to a ROPE, and interchangeable with it except for RPC. This will get you faster calls. It's possible the scheme will change, so I'd use your own, different, type names for RNames, indefinite length strings, etc. Your defining NetworkAddress as a rope is wierd, as you note. For secure calls, you will want to use Rpc Conversations, which add another parameter to the FRONT of every call. If this interferes with your object style access, then we should talk. Thanks for the quick response, Bruce *start* 00827 00024 US Date: 19-Jan-82 15:17:50 PST (Tuesday) From: Ousterhout.PA Subject: Bluejay Status To: VoiceProject^ Reply-To: Ousterhout As of today, I have the jukebox facilities running in Bluejay (recall that the jukebox is my homebrew Unix-like file system). I ran a simple test to see how it performs. A program writes out 100 seconds of speech to a tune (the jukebox-equivalent of a file) as fast as it can. The first time, this takes about 3.5 seconds, which is about 30 times as fast as real time. The second time it only takes about 2.5 seconds, or about 40 times as fast as real time. The first time is slower because it has to allocate space within the jukebox. This test uses all of the disk bandwidth but only about 25% of the CPU, leaving 75% of the CPU left to handle the Ethernet. -John- *start* 00289 00024 US Date: 19 Jan. 1982 5:57 pm PST (Tuesday) From: Dalal.PA Subject: Electronics Design article To: VoiceInterest^ cc: Dalal Reply-To: Dalal FYI: "Coax local network carries both voice and data." A paper by Donald Melvin from Intel on telephony using the Ethernet. *start* 01060 00024 US Date: 20 Jan. 1982 12:56 pm PST (Wednesday) From: Stewart.PA Subject: speechgrams To: VoiceProject^.pa Reply-To: Stewart From the MITRE section of the monthly Arpa Internet report: 2. Mike O'Connor has the LPCM speech codec once again working and can record and play back 2400-bps speech using our LSI-11 fuzzballs and standard files and access methods. The LPCM device interface and data formats are intended to conform to the spirit of NVP and the old CONFER program used on SATNET, but can be modified easily. In order to give us more insight into the real-time and operator-interface issues, we are integrating this modality into our existing internet message system so as to be able to send speechgrams (with LPCM data encoded horribly in 7-bit ASCII) to ourselves and Paal Spilling at NDRE. The goal of this simple excersize is to evaluate candidate speech/facsimile/text composition program ideas. Later we expect to be able to switch to more appropriate multi-media formats. *start* 00267 00024 US From: ogus.pa Date: 21-Jan-82 15:29:00 PST Subject: Re: Intel 2764 Prom Blowing In-reply-to: ornstein's message of 21 Jan. 1982 3:03 pm PST (Thursday) To: ornstein cc: Ogus, Stewart I believe we do. The person to ask is Clark Hallgren. Roy.*start* 00267 00024 USm From: ogus.pa Date: 21-Jan-82 15:29:00 PST Subject: Re: Intel 2764 Prom Blowing In-reply-to: ornstein's message of 21 Jan. 1982 3:03 pm PST (Thursday) To: ornstein cc: Ogus, Stewart I believe we do. The person to ask is Clark Hallgren. Roy.*start* 00967 00024 US Date: 24 JAN 1982 2318-PST From: GONSALVES.PA Subject: Ethernet unsuitable for voice? To: voiceinterest^ From Baxter & Baugh (of Bell Labs), "A Comparison of Architectural Alternatives for Local Voice/Data Communications", IEEE Communications Magazine, Jan. 1982 : Speaking of bus architectures for integrated LAN's, the authors have to say: "For local or intra-office switching, packetized voice has two negative consequences that nearly always rule it out as a practical method of voice communication. ... The overhead associated with processing the digital voice samples into packets, transmitting them and depacketizing them is usually expensive compared to straightforward circuit switching. The second consideration has to do with conference calls . . . an awkward operation in a packet network. For these reasons, it is unlikely that local systems containing any appreciable amount of voice traffic will use packetized voice." *start* 01039 00024 US Date: 26 Jan. 1982 5:53 pm EST (Tuesday) From: Carroll.WBST Subject: Re: Query re phone usage statistics In-reply-to: GONSALVES.PA's message of 26 JAN 1982 1345-PST To: GONSALVES.PA cc: voiceinterest^.PA Tim, A good source for voice statistics, methods of analysis, etc. is the Bell Systems Technical Journal. Relevant trade publications such as Telephony and Telecommunications also feature articles that would address your interests. I have seen articles describing residential usage patterns, commercial usage by industry (i.e. hotel, sales offices, and buildings of various class sizes) and methods of calculating phone usage (CCS, erlangs, etc.), trunk sizings, levels of performance, PBX options and configurations, etc. Xerox is also a large, representative sample of telephone use. The manager of Voice Communications in Xerox is Fred Bolton 8*223-4422 whose organization routinely measures Xerox usage and may be able to provide or direct you toward more information. Hope this helps, Tim Carroll *start* 00482 00024 US Date: 27 JAN 1982 0043-PST From: STEWART.PA Subject: Lark redesign notes To: VoiceProject^ Let's get rid of the 8274 and keep the 8251. If we're not going to use Belleville's computer, then we don't need two RS-232 ports, only one. The 8251 can provide it and only costs $2.30 vs. $20 for an 8274. We should count the number of input and output control lines needed to operate the analog stuff and provide one or two more 8255s to handle the load. -ly *start* 05296 00024 US Date: 28 Jan. 1982 5:43 pm PST (Thursday) From: ornstein.PA Subject: Lark Redesign Notes - In Progress To: Stewart, ornstein 1. We are now probably going to absorb Belleville's logic into our own rather than largely adopting his wholesale. The details have to be thought out but it would mean we don't need the 8274 Serial Line controller. That had two purposes: communication with Belleville's logic and communicating with the Lark IIB display/keyboard. We'll now probably use 8255 or equivalent for the former and a cheaper 8251 for the latter. We had thought, once Ethernet downloading was ready, to eliminate the 8251 we currently have. However it's nice to have the monitor functions, at least during debugging. 2. Fix Prom code so that on Reset, first thing it does is set up the 9513 (timer) to run the 8251 at the proper speed. This lets us eliminate the divide by ten counter presently producing the 8251's clock. 3. We should put in dip switch. One switch says whether, on Reset, we go directly to the Ethernet down-loader or to the monitor. Another one of the switches enables/disables the WatchDog Timer. 4. Dynamic Memory vs. Static. Static is simpler but, depending on how much you need, takes more acerage. Main argument for Dynamic seems to be to overwhelm the uncertainty in how much memory we'll need. If we bite the bullet and use Dynamic, then we can get 64K which is oceans so we can forget worrying. (Otherwise we get into questions of how much space to leave for expansion, etc.) So Larry and I pretty well agreed to go for Dynamic. We then addressed the refresh issue (from which stem the complications). There seemed to be 4 general possible ways to do refresh: 1. Let the 8203 Memory controller handle it. This means we have to worry about fielding not-ready whenever anyone tries to use the memory when the 8203 is refreshing. We didn't like it for that reason. 2. Use a DMA channel to periodically reference the next set of addresses. But with the slave processor, we had eliminated the 2nd. DMA and the first is thus left full (2 channels for encryption, one for SLC cascade, and one for Slave cascade). So we would have to add an extra (40 pin) DMA if we went this way. 3. Interrupt the main processor periodically and let it make refresh references. This is a terrible burden on the main processor program - got to be careful locking interrupts and if anything goes wrong - Blam! 4. (This is the one we like) - Let the Slave do the refreshing. It gets roused every 125us for the next voice sample. For 64K Rams, the wrost case array needs to have 256 RAS tickles every 4 ms. That's 8 row (successive byte - i.e. 4 successive word) references every voice sample time. A) The Slave could just do (refreshing) data references in the main memory, perhaps taking advantage for some of them of the voice data references required anyway. But that lengthens the Slave's loop just for refreshing. OPEN ISSUE B) We thought about putting some of the slave code (8-successive-byte-references) into the main memory and jumping back and forth from the slave's ROM - letting the instruction fetches in the main memory do the refresh. (You would need 32 copies at suitable different row addresses and unroll the loop). But the main processor could clobber you. To avert that we thought to reference the main memory in parallel with the slave's ROM, but only fetch the data from the ROM. Then to be able to forget about where the code was located in the ROM and having to have multiple copies (so the addresses would properly cycle through all the RAS's) Larry thought to add a Refresh flop and an 8-bit Refresh-address counter. As the Slave enters the consecutive part of it's loop (where the parallel Main Memory refreshing is to take place), it sets the Refresh flop. That institutes the parallel referencing and waiting for DACK's as required. It also causes the Refresh-address counter to be stepped by slave ALE's and to be used as the low 8 bits of address in making the refresh references to the Main memory (doesn't affect addresses to the Slave's ROM). At the end of the "refreshing" instructions, the program turns off the flop. Larry's final coup was to try to use the 8203's internal counter for this Slave counter, but (HORRORS) there's no way to do that - and WORSE!! you can't stop the 8203 from doing refreshes. Either you tell it to do them or it will do them on its own. There's no way to tell it "just leave refreshing to me". 5. Trick in how to do zeroing of memory behind takeout of the audio sample (for adding into incoming conferencing). The takeout from main memory does a single byte reference whose resulting data is used as part of the address into the Slave's "linearizing" PROM. The linear result requires two references to the PROM; a complementing flop is used as the low address bit for the PROM - thus obtaining two sequential locations. If we latch the byte from main memory on the first reference, then we can use the ciomplementing flop to turn the second reference (to the Main memory) from a Read into a WRITE. Then we also provide a zero data source. Since the rest of the address to the main memory hasn't changed, we've rewrtiien the voice byte with zeros - a read-modify-write. *start* 00682 00024 US Date: 29 Jan. 1982 4:32 pm PST (Friday) From: Stewart.PA Subject: U255 Encoding routines To: Trigoboff cc: VoiceProject^.pa, Stewart [Indigo]EP>U255.df describes a collection of software to do conversion between U255 encoded bytes and other encodings. In particular, U255.mesa and U255Impl.mesa (and .bcd) are an interface and implementation to convert between U255 and integer encodings. -Larry A useful article is "A New Digital Technique for Implementation of any Continuous PCM Companding Law," by Villeret, Deschenes, and Stephenne, ICC 1973, pp 11-12--11-17. Reprinted in "Waveform Quantization and Coding," Ed. N. S. Jayant, IEEE Press. *start* 00590 00024 US Date: 29 Jan. 1982 4:53 pm PST (Friday) From: Stewart.PA Subject: Intel Parts prices To: VoiceProject^.pa Results of a Hartnet phone call last week about chip prices... 8088 $8.70 8086 $21 8237 $8.60 8202 $14.85 8203 $20 - $30 (new part) 16K rams essentially free 64K rams <$10 in a month or two (new part) 2716 $3 (450 ns version) 2732 $5.50 (450 ns) $7.20 (250 ns) 2764 $12.50 dropping to $9.50 in a few months (450 ns) $17.50 dropping to $12.25 (250 ns) 8259A-2 $4 8255A-5 $2.30 8251A $2.30 8274 ~$22 dropping to $14.70 in 1983 and to $11 in 1984 *start* 00442 00024 US Date: 29 Jan. 1982 5:11 pm PST (Friday) From: Stewart.PA Subject: Re: Intel 2764 Prom Blowing To: Ornstein cc: Stewart, Voice Ever follow up? --------------------------- From: ogus.pa Date: 21-Jan-82 15:29:00 PST Subject: Re: Intel 2764 Prom Blowing In-reply-to: ornstein's message of 21 Jan. 1982 3:03 pm PST (Thursday) To: ornstein cc: Ogus, Stewart I believe we do. The person to ask is Clark Hallgren. Roy. *start* 02480 00024 US Date: 30 Jan. 1982 8:28 pm PST (Saturday) From: Stewart.PA Subject: IBM Personal Computer To: VoiceProject^.pa cc: Thacker, McCreight, Gifford, TonyWest, Stewart I've had an opportunity to look over the circuit diagrams of the IBM Personal Computer published in the "Technical Reference Manual." Here are a few interesting things about it: The 8088 operates in maximum mode. This has two advantages: first, it permits operation of the 8087 coprocessor in a supplied socket, and second, maximum mode provides advance notice of memory cycles, which can reduce the number of wait states needed in systems using slower (and cheaper) memory chips. The system uses a dynamic ram controller constructed with TTL SSI/MSI and a delay line. Refresh is accomplished by use of an 8237A-5 DMA channel executing RAS only cycles under control of a programmable timer chip (an 8253). There appear to be three busses: the multiplexed address/data 8088 bus, called AD, a demultiplexed bus called A and D, and a seond level bus XA and XD. The interrupt controller (8259A), 8088, and Coprocessor are the only devices on the AD bus. The A and D busses contain the resident RAM and appear at the connectors for the 5 I/O slots. The XA and XD busses contain system ROM and all motherboard I/O (Timer, DMA, PIO). The bus organization seems to be related to two concerns: IO loading and DMA bus control. The former consideration is fairly obvious, the latter is quite ingeneous. The use of Maximum mode on the 8088, with its attendant interpretation of Hold and Holda as RQ/GT0 and RQ/GT1, would normally be incompatible with the use of an 8237 DMA device, which requires Hold and Holda. The IBM designers have arranged things so that DMA activity causes the Processor to go Not Ready. This halts execution, but the processor continues to drive the bus. This effect is circumvented by isolating the AD bus from the A and D busses. The processor is driving, but it isn't connected to anything! The interrupt controller is on the AD bus because its interactions with the Int and Inta signals are too complex to control with the ready line. The 8237 DMA opeates on a 20 bit address by use of an external LS670 dual port 4 bit ram which holds the high order bits. A DMA transfer cannot cross a 64K byte boundary. The memory incorporates a parity bit. Parity failure causes a non-maskable interrupt. (NMI is actually maskable by a Flip-flop I/O device.) -Larry *start* 01095 00024 US Date: 1 Feb. 1982 7:47 pm PST (Monday) From: Stewart.PA Subject: 8237 information To: VoiceProject^.pa cc: Stewart Call to Ron Saltzman at Intel applications: 408-496-7360 (Another number is John Epler, 408-987-5528) Q: What is an 8237-5? A: 8237-5 is 5 MHz, but different from 8237-2 in that some specs have changed: The -5 was created to alert customers of spec changes. 8237-5 info will come in mail. Q: What is Non-A vs. A? A: Don't know, will check for you. Q: If I am running a Block mode transfer on channel 3 and a request comes in on channel 0, will it be honored? A: Don't know, will check for you. Q: Does cascade mode on channel 1 work? A: Don't know, will check for you. Q: When is synchronization of Hold between 8237 and CPU needed? A: Don't know, will check for you. Q: Is the citation for 205 ns Read access time for an 8088 correct in the 8202 application note in the Peripheral Design Handbook? If so, is it true that one cannot build a no-wait-state memory for the 8088 using the 8203 without maximum mode or external logic? *start* 00657 00024 US Date: 2 Feb. 1982 10:40 am PST (Tuesday) From: asprey.PA Subject: Re: Ethernet unsuitable for voice? In-reply-to: GONSALVES' message of 24 JAN 1982 2318-PST To: GONSALVES cc: voiceinterest^ Yes, all they say appears to be true but it is my view that the second consideration is not one at all. It is a well known fact that people who purchase telephone systems often don't care how WELL a feature is implemented but rather that it exists. So give them a feature list as long as their arm and concentrate on making 'standard' call processing work 'reasonably' well. I'll just hedge on the definitions of standard and reasonably. *start* 02108 00024 US Date: 2 Feb. 1982 5:27 pm PST (Tuesday) From: Stewart.PA Subject: 8237 data To: VoiceProject^.pa --------------------------- Date: 2 Feb. 1982 4:17 pm PST (Tuesday) From: ornstein.PA I believe that we were told that the 8237 DOES re-prioritize between successive bytes in single transfer mode - and that it re-issues ADSTRB on each new byte. S. Call from John Epler at Intel, 408-987-5528: More information about 8237s of various flavors is on the way. Highlights: There is a mechanism called Control Override which forces the 8237 to release the bus, even in the middle of a block transfer. If Holda going to the 8237 is dropped after AEN goes low (probably should be ADSTB?), the '37 will complete the current cycle and relinquish the bus (take away Hold). Any transfers that stopped will not be restarted until a new REQ arrives or a software request is given. (Thus the tail of a block mode transfer could be lost if the block mode request is dropped as soon as DACK arrives.) If a higher priority request is activated during a group of demand mode transfers, the 8237 will not switch. No arbitration takes place between cycles of a demand mode transfer. At least two problems with the 8237-5: Cascade mode only works on channel 0 DREQ not asyncronous. If DREQ dropped during state S$, the 8237 may hang up. 8237A-5 information: The 8284A clock out should be inverted for the 8237 in order to meet the clock low and clock high time specs. Hold going into the 8088 should be synchronized Carefully check data setup and hold times of the 8237A-5 If ready is used, be sure to meet the 8237A-5 ready setup and hold times. When using an 8 MHz 8088, the half speed clock out of the 8284A can drive the 8237A-5, but be sure to add wait states when accessing the 8237A-5 from the CPU Changes from 8237-5 to the A-5 part: Cascade problem fixed, DREQ now asynchronous, no longer require 50 pf on MRd' for mewmory to memory moves to work. Drive capability increased to 2 mA. 8237A-5 and 9517A-4 identical except for speed, but the 9517A-4 has 3.2 mA drivers. *start* 00407 00024 US Date: 2 Feb. 1982 6:29 pm PST (Tuesday) From: Stewart.PA Subject: Etherphone.run To: VoiceProject^.pa cc: , Stewart I've modified the version of Etherphone.bcpl .run, and .syms that were on the Alto disk in the Nursery Alto to send 10 keepalive packets per second. John is going to use them as a clock reference for Bluejay. Dan: I didn't do anything with .df files... -Larry *start* 01131 00024 US Date: 3 Feb. 1982 12:37 pm PST (Wednesday) From: ornstein.PA Subject: Re: 8237 data In-reply-to: Stewart's message of 2 Feb. 1982 5:27 pm PST (Tuesday) To: Stewart cc: VoiceProject^.pa Reply-To: ornstein I don't understand - if Cascade mode only works on Channel 0 on the 8237-5, then howcum our Etherphone works at all? Isn't the 8237-5 the one we're using and don't we cascade both channels 0 and 1 (for extension and SLC)? Also - when you say that for the 8237-5 DREQ is not asyncronous, does the ensuing explanation ("DREQ dropped during state S$, the 8237 may hang up") mean that that's the only problem - i.e. is it still OK to RAISE DREQ asyncronously? If not, then I again don't understand how we manage to work?? Having thought about it, I now think we (I) probably overdid it with two synchronizer flops on Hold going into the 8088. Though Hold from the DMA may come at a bad time with respect to Sysclk, the first synchronizer flop will guarantee that at Sysclk times it's output is stable. If the 8088 itself strobes its Hold Request input with Sysclk, the one flop should be sufficient. S. *start* 02464 00024 US Date: 3 Feb. 1982 3:15 pm PST (Wednesday) From: Stewart.PA Subject: 8237 data, more To: VoiceProject^.pa --------------------------- Date: 2 Feb. 1982 4:17 pm PST (Tuesday) From: ornstein.PA I believe that we were told that the 8237 DOES re-prioritize between successive bytes in single transfer mode - and that it re-issues ADSTRB on each new byte. S. Call from John Epler at Intel, 408-987-5528: More information about 8237s of various flavors is on the way. Highlights: There is a mechanism called Control Override which forces the 8237 to release the bus, even in the middle of a block transfer. If Holda going to the 8237 is dropped after AEN goes low (probably should be ADSTB?), the '37 will complete the current cycle and relinquish the bus (take away Hold). Any transfers that stopped will not be restarted until a new REQ arrives or a software request is given. (Thus the tail of a block mode transfer could be lost if the block mode request is dropped as soon as DACK arrives.) If a higher priority request is activated during a group of demand mode transfers, the 8237 will not switch. No arbitration takes place between cycles of a demand mode transfer. At least two problems with the 8237-5: Cascade mode only works on channel 0 DREQ not asyncronous. If DREQ dropped during state S$, the 8237 may hang up. 8237A-5 information: The 8284A clock out should be inverted for the 8237 in order to meet the clock low and clock high time specs. Hold going into the 8088 should be synchronized Carefully check data setup and hold times of the 8237A-5 If ready is used, be sure to meet the 8237A-5 ready setup and hold times. When using an 8 MHz 8088, the half speed clock out of the 8284A can drive the 8237A-5, but be sure to add wait states when accessing the 8237A-5 from the CPU Changes from 8237-5 to the A-5 part: Cascade problem fixed, DREQ now asynchronous, no longer require 50 pf on MRd' for mewmory to memory moves to work. Drive capability increased to 2 mA. 8237A-5 and 9517A-4 identical except for speed, but the 9517A-4 has 3.2 mA drivers. ------------------------------------------------------------ Call from Ron Saltzman at Intel, 408-496-7360 A vs. non-A Cascade mode fixed MWr' no longer needs 50 pf Iol now 2.0 mA Block mode is non-interruptable. Demand mode is non-interrupta Synchronization on Hold still don't know On 8203, 205 ns is right. 8203 same timing as 8202A. *start* 01006 00024 US Date: 4-Feb-82 15:23:27 PST (Thursday) From: Trigoboff.PA Subject: VoiceViewer Program To: NDSmith, Roberts, Stewart, Verplank cc: Israel, Trigoboff A new, improved version of VoiceViewer is available, on: [Iris]Voice>VoiceViewer.bcd, .mesa New features: display of multiple lines, time compression. The "Time (msec)" parameter shows the time in milliseconds of the beginning of the display relative to the beginning of voice in the file. The "Time interval" parameter is how much the "Time (msec)" parameter will be bumped (decremented) by the Next! (Prev!) command. The "Sample size" parameter shows how many samples to display from each sampling interval. The "Sample interval" parameter defines the length of the sampling interval. The "Redisplay" command is used after setting the "Time (msec)", "Sample size", "Sample interval", or "Line height" paramaters. I think everything else is self-explanatory. If not, I'll be glad to answer questions. Mike *start* 00499 00024 US Date: 4-Feb-82 15:28:06 PST (Thursday) From: Trigoboff.PA Subject: Voice Files To: NDSmith, Roberts, Stewart, Verplank cc: Israel, Trigoboff By the way ... There are voice files you can use with VoiceViewer stored on: [Ibis] Hello.u255 -- "Hello Mike, this is Larry ..." Now.u255 -- "Now is the time for all good men to come to the aid of their party" QBF.u255 -- "The quick brown fox jumped over the lazy dog" Have fun ... Mike *start* 03735 00024 US Date: 5 Feb. 1982 4:50 pm PST (Friday) From: Stewart.PA Subject: SLC timing requirements To: VoiceProject^.pa All timing assumes load capacitance of 150 pF. Using timing as a multiple of 8 kHz 6.144 MHz or 12.288 MHz 1.5 Mbit 3 Mbit Input clock 162.8 81.4 T clock out cycle time = 1/2 clock in 325.5 162.8 Tal address valis to NALE trailing edge 112.8 31.4 Tll NALE width 142.8 61.4 Tla Address valid after NALE 112.8 31.4 Tad Address valid to data valid 663.8 256.9 Tac Address valid to NSTROBE low 275.5 112.8 Trd NRD low to data valid 338.3 94.1 Tary Address valid to NReady valid 472.4 106.2 NSTROBE low to NREADY valid 266.9 63.45 Tcl NSTROBE high to next NALE 215.5 52.8 Tca NSTROBE high to change A8-A15 122.8 41.4 Twd write data hold time 122.8 41.4 Tdw write data valid to end of NWR 581 255.5 Trae NRD end to AD driven 245.5 82.8 Tlc1 NALE end to NSTROBE 122.8 41.4 Trys NREADY setup to rising edge of CLOCKOUT 171.4 130.7 Tryh NREADY hold after rising edge 0 0 Using timing as a multiple of 170 ns (True Ether frequencies) 5.882 MHz or 11.76 MHz 1.5 Mbit 3 Mbit Input clock 170 85 T clock out cycle time = 1/2 clock in 340 170 Tal address valis to NALE trailing edge 120 35 Tll NALE width 150 65 Tla Address valid after NALE 120 35 Tad Address valid to data valid 700 275 Tac Address valid to NSTROBE low 290 120 Trd NRD low to data valid 360 105 Tary Address valid to NReady valid 505 122.5 NSTROBE low to NREADY valid 285 72.5 Tcl NSTROBE high to next NALE 230 60 Tca NSTROBE high to change A8-A15 130 45 Twd write data hold time 130 45 Tdw write data valid to end of NWR 610 270 Trae NRD end to AD driven 260 90 Tlc1 NALE end to NSTROBE 130 45 Trys NREADY setup to rising edge of CLOCKOUT 175 132.5 Tryh NREADY hold after rising edge 0 0 Timing for chip select mode min max AD setup before end of ALE 50 ALE width 40 AD hold after end of ALE 30 ALE to start of NWR or NRD 40 NCS setup before NWR or NRD 35 NCS hold after NWR or NRD 60 Data hold after end of NWR 60 READ: NREADY driven after end of NRD 100 Data tristate after end of NRD 90 Data put on bus one PH1 cycle before NREADY driven true WRITE: Data valid after start of NWR 170 NREADY driven after end of NWR 100 RESET: TINT, RINT, HOLD out of tristate after end of NRESET 100 Dma notes: Looks like, in the absence of Ready, that NWR and NRD are drivebn low for two cycles of Phi-2. Write data is driven at the same time as NWR, but there might be some skew in the two paths. See Tdw above. On DMA reads, looks like data is samples 1/2 Phi-2 cycle before the end of NRD. That explains the general flawor of Trd above. Frank Nelson says that Trd is probably more relaxed than that. The formula is Trd = 3/2T - K6, where K6 <= 150 ns. Frank Nelson mentioned that if its gonna work at 12 MHz, then K6 is probably smaller, but probably not as small as 75. If we call K6=100 ns, then Trd would be 144 ns. That might work with out 120 ns access time chips, maybe. We can start reads early by initiating an SLC dma read at the time of NALE rather than at the time of NRD. That gives advance warning of a dma read. Tlc1 above is the additional time available. 94.1+41.4 = 135.5ns. However, it seems quite likely that the worst cases of Tlc1 and Trd cannot occur at once. I'll ask Frank Nelson. If we use the true ethernet frequency (separate SLC and audio crystal), and we use advance read, and we use 100 for K6, then the dma read access time would be 45+105+50 = 200 ns, which is fine. -Larry *start* 00889 00024 US Date: 5 Feb. 1982 6:50 pm PST (Friday) From: Stewart.PA Subject: More Lark redesign ideas To: VoiceProject^.pa Severo and I got to thinking... We could: Use an 8 MHz 8088 but only run it at 5 MHz. This would reduce some of the propagation times here and there and perhaps permit use of slower memory chips. We could run the 8088s at 8 MHz. This could give us 60% more cycles. We would have to run the 8237A-5 DMA controller at half speed (4 MHz) and insert an 8088 wait state when doing IO space reads and writes. The memory system would have to be re-analyzed. We probably will: Run the SLC at the correct frequency for Ethernet instead of the nearby frequency which is a multiple of T1. This probably costs about 1/2 package. (You mean this telephone has two processors and three crystals? ) Maybe four crystals, since the DTMF decoder has one too. *start* 01720 00024 US Date: 6 Feb. 1982 5:26 pm PST (Saturday) From: Stewart.PA Subject: VoiceViewer Program To: VoiceProject^.pa A Tajo voice waveform display program --------------------------- Date: 4-Feb-82 15:23:27 PST (Thursday) From: Trigoboff.PA Subject: VoiceViewer Program To: NDSmith, Roberts, Stewart, Verplank cc: Israel, Trigoboff A new, improved version of VoiceViewer is available, on: [Iris]Voice>VoiceViewer.bcd, .mesa New features: display of multiple lines, time compression. The "Time (msec)" parameter shows the time in milliseconds of the beginning of the display relative to the beginning of voice in the file. The "Time interval" parameter is how much the "Time (msec)" parameter will be bumped (decremented) by the Next! (Prev!) command. The "Sample size" parameter shows how many samples to display from each sampling interval. The "Sample interval" parameter defines the length of the sampling interval. The "Redisplay" command is used after setting the "Time (msec)", "Sample size", "Sample interval", or "Line height" paramaters. I think everything else is self-explanatory. If not, I'll be glad to answer questions. Mike ------------------------------------------------------------ Date: 4-Feb-82 15:28:06 PST (Thursday) From: Trigoboff.PA Subject: Voice Files To: NDSmith, Roberts, Stewart, Verplank cc: Israel, Trigoboff By the way ... There are voice files you can use with VoiceViewer stored on: [Ibis] Hello.u255 -- "Hello Mike, this is Larry ..." Now.u255 -- "Now is the time for all good men to come to the aid of their party" QBF.u255 -- "The quick brown fox jumped over the lazy dog" Have fun ... Mike *start* 00240 00024 US Date: 6 FEB 1982 1855-PST From: STEWART.PA Subject: ETP-Rev-Ad To: VoiceProject^ ETP-Rev-Ad is ready for stitchwelding. This is a rework of the Dorado board prototype to get rid of all the little fixes. -Larry