*start*
00986 00024 US 
Date: 8 March 1982 3:51 pm PST (Monday)
From: Stewart.PA
Subject: Delay Lines
To: VoiceProject↑.pa
cc: Stewart

We ordered Bel Fuse Inc. 0447-0100-10, TTL compatible, 10 tap 10 ns per tap
delay lines, at about $40 each.

I talked to R. Thompson, a Los Gatos rep for Bel Fuse,  408-395-7171

He told me that the 10 tap parts are hybrids, with 2 chips in the same package.  

The 0447-0100-02, a 5 tap 20 ns per tap part, is $10-$12 at 100 quantity.

Our design, (ETR06.sil) uses the following taps:

tap 10 -  turn off CAS after the end of RAS
tap 20 -  extend RAS during writes from the encryption chip to memory
tap 30 -  switch from row addresses to column addresses
tap 40 -  start CAS 40 ns after RAS during reads
tap 100 - start CAS 100 after RAS during writes

CAS turnoff can be immediate or tap 20
Address switching can be tap 20

So we can use the 5 tap, 20 ns per tap devices!

Mike will talk to Joe Patti tomorrow about switching the order.

	-Larry

*start*
00424 00024 US 
Date: 8 March 1982 4:04 pm PST (Monday)
From: ornstein.PA
Subject: Re: Delay Lines
In-reply-to: Stewart's message of 8 March 1982 3:51 pm PST (Monday)
To: Stewart
cc: Ornstein

Great!

Does that mean we should abandon the 8203 approach - especially given the
SLC's untestedness re. fielding Ready? Or are you close enough to the end of
that road anyway that we can look and compare costs, etc? 

S.

*start*
01584 00024 US 
Date: 9 March 1982 9:09 am PST (Tuesday)
From: Stewart.PA
Subject: practical voice recognition
To: VoiceInterest↑.pa
cc: Stewart
Reply-To: Stewart

------------------------------
Date: 2 March 1982 19:36 est
From: Frankston.SoftArts at MIT-MULTICS
Reply-to: Frankston at MIT-MULTICS (Bob Frankston)
Subject: Major breakthrough -- practical voice recognition

Or at least, ABC TV thinks so.  From an article in the Boston Globe,
Tuesday, March 2, 1982, page 31.  The article is by Bill Collins,
Kight-Ridder Service. It is discussing why NBC is planning to drop
close captioning.

     ABC, however, believes that Real Time is a breakthrough.  it
     works by way of an electronic stenographic device that feeds
     spoken words into a computer, which translates them almost
     instantly into printing.  This happens so quickly that the
     captions can be fed into the television signal even though they
     are transmitted from NCI headquarters in Falls Church, Va., and
     the TV show comes from thousands of miles away.

     "It not only turns spoken words into writing, but will pick up
     the usage fo the word and spell it right," said AVC spokesman
     Herb Wurth.  "For instance, it will pick the difference bewteen a
     color that is `red' and a book that is `read.'"

Possibilities:
     1. There is one born every minute.

     2. There is a major breakthrough of which I am totally unaware.

     3. There is a little person inside a machine in Falls Church,
        Va typing at a furious pace.

Anyone know anything more about it?

*start*
00979 00024 US 
Date: 10 March 1982 6:49 pm PST (Wednesday)
From: Stewart.PA
Subject: ETT ??
To: VoiceProject↑.pa
cc: Stewart

I am pondering the effects of plugging in 8 MHz 8088s into the ETR (delay line)
design.

1)  Main CPU would need 1 wait state for IO references and ROM reads.
2)  Memory control simplified because Encryption writes need not be extended.
3)  Slave CPU can get by without any of the tricks, removing 3 or four chips
4)  Main CPU performance increased 40% - 60%, since the 150 ns rams are fast
enough to run with either 0 or (possibly 1 if we screw up) wait states.
5)  We could spend a few of those cycles by using interrupt based refresh,
eliminating both the DMA channel arbiter and the hardware refresh controller.
An alternative might be one of the execute in parallel slave cpu controlled
refresh schemes.  I have to think about it.
6)  The timing comes close to not needed CAS tap switching for writes, but not
quite!

	Stay tuned - Larry

*start*
05256 00024 US 
Date: 11-Mar-82 15:11:29 PST (Thursday)
From: verplank.pa
Subject: Re: Voice volumes
In-reply-to: Swinehart's message of 11 March 1982 8:05 am PST (Thursday)
To: Swinehart, Stewart, Pasco
cc: verplank, dalal, ndsmith, purvy.es, trigoboff, roberts

Dan, Larry, Rich,

I've had very little response to my request for info/opinions on voice volumes; more would be useful.  Any news on 32 or 16kb/s codecs?  Here's what I got:

----------
Date:  4-Mar-82 18:25:12 PST (Thursday)
From: Murray.PA
Subject: Re: Voice volumes
In-reply-to: Your message of 4-Mar-82 16:15:57 PST (Thursday)
To: verplank
cc: Murray.PA

I'd like to know if you get any info.  Those numbers seem low to me -- they reflect the ugliness of talking to somebody while a message is written down by hand.  I'd guess that voice will take off shortly after it works.
----------
Date: 5 March 1982 11:01 am PST (Friday)
From: Elkind.PA
Subject: Re: Voice volumes
In-reply-to: Your message of 4-Mar-82 16:15:57 PST (Thursday)
To: verplank
cc: Elkind

Bill,

I have two suggestions: 1) Get data on the use patterns of telephone answering
devices.  Several groups in the company routinely use these to accept telephone
messages.  2) See what happens if you take "typical" Luarel traffic and assume
that it was all transmitted by voice instead of text.  I bet you could get some
interesting traffic volumes from these two sources that would be more relevant
than off the wall estimates.

Jerry
----------
Date: 5 March 1982 11:25 am PST (Friday)
From: Halbert.PA
Subject: Re: Voice volumes
In-reply-to: Your message of 4-Mar-82 16:15:57 PST (Thursday)
To: verplank

I find the predictions shortsighted, just as I'm sure the original predictions about
text electronic mail were too. Text electronic mail is a non-instrusive form of
communication. Voice mail could be, too. If the system were able to queue voice
at any time, not just when a phone didn't answer, or was busy, then it might be
used for all sorts of messages. We can't predict what kind without trying it.
People who can't type would be very inclined to use it for many of things we
now use text mail for, for instance. Etc.

--Dan
----------
Date:  5-Mar-82 14:35:51 PST (Friday)
From: Purvy.ES
Subject: Re: Voice volumes
In-reply-to: verplank.pa's message of 4-Mar-82 16:22:50 PST (Thursday)
To: verplank.pa
cc: Dalal.pa, NDSmith.pa, Trigoboff.pa, Purvy, Roberts.pa, Braun

I found it kind of hard to understand all of this.  What does "On the basis of statistics gathered by BBN's computerized PBX, we estimate that approximately 1500 call attempts (including internal and external calls either receive no answer, or receive a busy signal, or are picked up by BBN's Message Center" mean,  aside from the unbalanced parentheses?  How many people are on the net, or does it matter?  Etc?

What's an erlang?

But I guess the bottom line is that you need 100 megabytes of storage per day for voice messages, if you have 500 messages of 30 seconds each per day?  That says that a T-300 will hold three days of messages.  If you assume that most messages are played and deleted on the same day they're sent, or the next day, then there shouldn't be any problem of running out of space.

Whether all this puts too much of a burden on the Ethernet is something for Yogen to answer.

Bob  
----------
Date: 7 March 1982 12:17 pm PST (Sunday)
From: sasmith.PA
Subject: Re: Voice volumes
In-reply-to: Your message of 4-Mar-82 17:48:09 PST (Thursday)
To: verplank
cc: SASmith

Bill,

I can give you some comments on the projections in Richer's article and a few
numbers that may help project voicemail traffic.

Richer's figures on telephone calls per day per person seem pretty typical. 
Average calls per day per person are often estimated at three to four, with 60 to
75% unsuccessful in reaching the desired person.

The number of these that would show up on a store-and-forward voice system,
plus new volume that might appear, is a matter of conjecture at this point.  Our
Laurel study is showing a little over one text message originated per day per
person over all classes of users in Xerox.  Some other studies have observed as
many as four per day in non-research environments.  My own best guess is that
most of the unsuccessful calls (i. e., 2 to 3 per person per day) would appear as
messages, either text or voice, because once a voice msg systems are widespread,
they would tend to eliminate the current pink slip system.
Much traffic on text message systems (about 80% of msgs rec'd on Laurel) is
generated from distribution lists.  Thus, whether or not voice systems include
this feature and whether or not multiple copies of msgs are stored are very
important factors. 

Richer's estimate of 30 secs. per msg may be too high,  based on how long it
takes to tell somebody to call you back and why.  However, his total estimate of
30 secs per day per person is not a large % of the standard business voice traffic
per person per day (520 call seconds).

Clearly the 64 kbps sampling rate is unreasonable for voice msg systems, as
Richer points out.  Something in the 2.5 to 8 kbps range should be achievable.  I
believe Rich Pasco has a lot of technical information on sampling rates.

Steve S.
----------
*start*
01257 00024 US 
Date: 11 March 1982 4:20 pm PST (Thursday)
From: Stewart.PA
Subject: Re: Voice volumes
In-reply-to: verplank's message of 11-Mar-82 15:11:29 PST (Thursday)
To: verplank
cc: Swinehart, Stewart, Pasco, dalal, ndsmith, purvy.es, trigoboff, roberts

I disagree with "64 Kbps is too high for a voice message system."

A 300 Mb pack will hold 10.4 hours of speech at 64 Kbps.

64 Kbps is easy to build using standard Codecs etc.

64 Kbps is the standard for interactive voice.  Any move to incorporate lower bit
rate codecs into terminal equipment (telephones) will have to maintain the same
quality.  (I think we should keep the 64 Kbps bit rate and improve the quality
with better coding.)

If you don't put the low rate codecs into the terminal equipment, then you have
to put them into the server.

If you record messages at 64 Kbps and compress them at your leasure you may
save on coders, but the file server will still need adequate numbers of decoders
to decode in real time all simultaneous file retrieves.

I suspect that in the near term it will be easier to buy more disks than to get
involved in speech compression.  It can always be added later. (With the
compression at the server.)

	-Larry

Stick with big disks for now!

*start*
12609 00024 US 
Date: 11 March 1982 4:40 pm PST (Thursday)
From: Stewart.PA
Subject: Lark memory control, ETR+8 MHz CPU
To: VoiceProject↑

What would be the effects of using 8 MHz CPUs in the ETR design?
We'd like to eliminate the tricks on the slave system and eliminate some
complexity of the memory control on the master system.

1)  Try to eliminate delayed CAS during writes.  (probably still need it)
2)  Try to eliminate extended RAS during DMA writes  (looks OK)

Lark main memory consists of 8 64K dynamic rams to hold the bits, an Am2964B
dynamic RAM controller to generate the address, a delay line to generate RAS
and CAS timing, and some small scale logic to sort out the various kinds of
cycles.

We have ordered RAMs with 120 ns RAS access time, but suspect that 150 ns
chips would work in all cases.  TImings below are worked out for the 150 ns
chips.

A DRAM cycle consists of RAS, which must last at least 150 ns.  40 ns after
RAS, CAS starts and lasts until slightly after RAS  (They can end at the same
time).  If the WriteEnable RAM pin is activated at the start of CAS, the cycle in
a write.  In this case, the RAM output remains in tri-state and data at the input
is latched at the beginning of CAS.  During a read (no WriteEnable), the chip
output leaves tristate after the start of CAS and remains enabled until the end of
CAS.  A refresh cycle does not need a CAS, but may have one, in which case it
is a normal read as well.  Not using CAS saves chip power.

Reads:

Main CPU and SLC

These devices get special treatment on reads.  When IO is low (a memory cycle),
and PDT is low (a read), then the signal EarlyRead' is asserted at the end of
ALE'.  This serves to get the memory cycle started a bit early to compensate for
the fast memory requirements of the SLC running at 2.94 Mbps.  When the
actual Rd' signal comes along, it both takes over the job of providing RAS and
clears the EarlyRead flipflop.

PDT and IO have the same timing as addresses, they can be safely latched with
ALE.  Whenever there is an ALE, there is guaranteed to be a cycle coming, and
PDT will always accurately reflect whether it will be a read or a write.

We want the system to work with a 2.94 Mbps SLC.  The timing requirements for
memory read are:

SLC:
Tlc1 NALE end to NSTROBE				 45
Trd NRD low to data valid					105
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.

So from the end of ALE to read data required is at least 150 ns and possibly as
much at 200 ns.

8088:
	End of ALE is <= 55 ns after rising edge of SysClock in T1.
	Data must be valid 20 ns before the falling edge of the clock at the end of
T3.  The total time is all of T3 less 20, plus all of T2, plus 1/3 of T1 less 55 =
222.5 ns.

8088 Reads:

Trldv for 7.843 MHz 8088, no accounting for latch/buffer delays

2Tclcl-Tclrl-Tdvcl = 255-100-20=135  Not enough, even for 150 ns RAMs

Alternate config.  (Early read)

2Tclcl+Tchcl-Tchll-Tdvcl=255+42.5-55-20 = 222.5

ROM reads:

Starting at the falling edge starting T1: Tcldv = 3Tclcl-Tdvcl = 382.5-20 = 362.5. 
Allowing 32 for the 8286 data transceiver leaves 330.5, less 250 for the EPROM
leaves 80.5.  However, the addresses don't get through the address latch possibly
until a strobe enable time after ALE, which is two gate delays from the CPU. 
The addresses are valid either Tclav+ T8282data = 60+30 = 90 OR
Tcllh+T8T09+Tls04+T8282strobe = 50+10+15+45 = 120.  Either reason will keep it
from working.  We need one wait state for ROM reads!

Notes: We could move the EPROM to the AD bus, saving 32 ns.  We could use
an S04 to invert ALE', saving about 10 ns.  We could use an S373 in place of the
8282 to get data delay of 13 ns and clock delay of 18.  An LS373 would be data
delay of 27 and clock of 36, but these are for low capacitance on the LA bus. 
(There is only the 8237, the 2964, and the EProm on that bus! 50 or 60 pf might
be right!)

The combination of moving the EPROM to the AD bus and using an S373 would
do it.

Oddly enough, the S373 takes 250 microampere drive while the LS373 takes 400! 
The S part is twice the speed for 4 times the supply current...

Note:  We can use the (faster) 8287 and invert MD by inverting the EPROM
data.   NO!  WD2001 must be on MD bus to allow sufficient data hold time for
fast 8088.

Main memory reads:

The logic chain between ALE' and data on the AD bus is:

		Typ		Max
8T09		10		10		PALE to ALE'  cpu only
S74 		6		9
S20		3		4.5
S02		3.5		5.5
2964B		14		20
Chips		120		120

8287 xcvr	12		22		300 pf on AD bus
tot SLC:	158.5		181
tot CPU:	168.5		191

8286 xcvr	22		30		300 pf on AD bus
tot SLC:	168.5		189
tot CPU:	178.5		199

totCPU:	208.5		229		with 150 ns RAMs and 8286

CPU reads will work using 120 ns RAMs, but not, if using 150 ns RAMs and
worst case times.

The consequence of this logic is that the 3 Mbps SLC will work only if K6 is
somewhat smaller than specified for the 1.5 Mbps part.  We should ask MEC I
guess.

It may also be possible to bypass the 2964 for RAS & CAS, using it only for
address multiplexing.  We need to save 7 ns somewhere if we don't want wait
states for main CPU reads.

Slave CPU

ROM reads:

Starting at the falling edge starting T1: Tcldv = 3Tclcl-Tdvcl = 382.5-20 = 362.5. 
Allowing 250 for the EPROM leaves 112.5.  However, the addresses don't get
through the address latch possibly until a strobe enable time after ALE.  The
addresses are valid either Tclav+ T8282data = 60+30 = 90 OR Tcllh+T8282strobe =
50+45 = 95.  So the Slave CPU can read its own ROM with no wait states.

The slave CPU starts shared memory reads by asserting Rd' after aquiring the
main busses.  There are sufficient wait states in the SlaveDAck path to absorb
the delay between Rd' and the Slave data bus.

The logic chain between GSlaveDAck and data on the SAD bus is:

		Typ		Max
LS125		15		25
S20		3		4.5
S02		3.5		5.5
2964B		14		20
Chips		150		150
8282 latch	22		30		300 pf on AD bus
2764		250		250
Tot:		457.5		485

There are two D-flop stages between GSlaveDAck and SlaveReady, and data is
sampled a full cycle after that less 30 ns for an available budget of 570 ns.

DMA (DMA reads memory and writes into Encryption chip)

8237A-5 specs
TDCL		clock high to Wr' or Rd' low	max 190
TDCTR	clock high to Rd' high		max 190
TDCTW	clock high to Wr' high		max 130

The DMA controller must be set up with normal reads and extended writes.  In
this mode, MRd' and IOWr' are asserted at the same time, and for about 510 ns
each.    Memory data will be available roughly 150 ns after MRd' starts.  Data is
required at the WD2001 130 ns before the end of Wr'.  Thus 280 ns of the
available 450 is used up.

Note:  Minimum specs on TDCTW and TDCTR are not published!  I am assuming
that TDCL and (TDCTW or TDCTR) track.

The nominal Rd' and Wr' widths are 2 cycles wide, 255 ns each.
These totals must be less than 510 ns, the nominal Rd' and Wr' widths.

		Typ		Max
TDCL		190		190
LS125		15		25
S20		3		4.5
S02		3.5		5.5
2964B		14		20
Chips		150		150
8286 xcvr	22		30		200 pf on AD bus
2001 setup	130		130
TDCTW	-130		-130		(negative because AFTER 2nd clock
Tot:		397		425

Chips		150		150
8287 xcvr	12		22		200 pf on AD bus
Tot:		387		417

Chips		120		120
8286 xcvr	22		30		200 pf on AD bus
Tot:		367		395

Chips		120		120
8287 xcvr	12		22		200 pf on AD bus
Tot:		357		387

The DMA controller can use normal writes because the minimum write pulse
width from the 8237A-5 (195 ns) is longer than the minimum write pulse
required by the WD2001 (175 ns).  This is not relevant however, either will
work!

WRITES:

Since data is required at the memory chips when CAS starts (setup time = 0),
CAS is delayed for writes by switching taps on the delay line.  For reads, CAS
follows 40 ns behind RAS.  For writes, the delay is 100 ns.

Can we do without this delay?  (Apparently not, but we might put a delay
where Wr' enters the S20!)

Main CPU:

Beginning of writes:  The data must be there by when the RAMs need it.

Twldv for 7.843 MHz 8088 = Tcldv-Tclctv = [10..70]-[10..60] = [-50..60]
	Data buffers make things worse (lengthen Twldv)
	Wr' buffers make things better (delay Wr')

The worst case would need to delay Wr (CAS) by 20 ns to add to the 40 ns RAS
to CAS delay to get the data to the memories before CAS

End of writes:  The data must still be present when the RAMs grab it

Twhadv for 7.843 MHz 8088, no accounting for latch/ buffer delays
	Data buffers help by keeping the data longer
	Wr' buffers hurt by delaying Wr'

2Tclcl+Tclch+Tchdx-Tclctv = 255+85.4+10-70=280.4

For an 8088 (7.843 MHz), the leading edge of Wr' follows the rising edge of
SysClock by 10 to 70 ns.  Data is valid after the same edge by 15-60 ns.  One
assumes these delays track, but even if they don't, the timing still works.  There
is one bus transceiver between AD and MD, and several gates between PWr' and
the RAS pin of the chips, plus the 100 ns delay.

We'll count delays to the control signal as negative and delays to the data as
positive.  The answer should come out negative, the amount by which the data
is late at the chips should be negative.  I've reversed the 8286 typical and worst
cases because they work the other way...

		Typ		Max
LS125		-15		-25
S20		-3		-4.5
S02		-3.5		-5.5
2964B		-14		-20
CAS		-100		-100		with tap switching
CAS		-40		-40		without tap switching
8286 xcvr	32		22		200 pf on MD bus
8088 data	60		60		assumes worst data, best Wr'
Total:		16.5		-13		without tap switching
Total:		-43.5		-73		with tap switching

So tap switching is needed

SLC

We have been told by El Segundo that the SLC starts to drive the data lines at
the same time Wr' is asserted.  The SLC writes will work unless the differential
skew between the data and Wr' exceeds 100 ns.  (Given tap switching!)

Slave CPU

The slave CPU, when requesting a shared memory write cycle, typically asserts
SlaveWr' and the data (on the slave side of the MD drivers) and then waits for
GSlaveDAck.  This signal simultaneously enables both Wr' and MD' so again, the
skew will not exceed 100 ns.

DMA (DMA reads from Encryption chip and writes to memory)

The DMA operates at 1/2 7.843MHz = 255 ns cycles

The 8237A-5 must be operated with normal reads and normal (short) writes. 
Because the minimum width MWr' from the 8237A-5 is 195 ns, and this signal
directly generates RAS.

The WD2001 delivers data 220 ns after Rd' is activated.  The data must get to the
memory 100 ns after Wr' is activated.  By using the 8237A-5 modes described
above, the Wr' pulse is delayed 255 ns after the Rd' pulse.  Thus the data from
the WD2001 arrives 35ns before RAS, but is not needed until 40 ns after RAS
(even without using tap switching!) and all is well.  The end of RAS is does not
need to be extended extended to meet the specs for 150 ns memory chips.

8237A-5 	-255		-255		due to delay of control signal
LS125		-15		-25
S20		-3		-4.5
S02		-3.5		-5.5
2964B		-14		-20
CAS		-100		-100
WD2001	220		220
8286 xcvr	32		22		200 pf on MD bus
Tot:		-138.5		-168


------------------------------------------------------------
The main CPU will need an IO wait state.  (1 will do, 2 are OK, since there are
few IO cycles.)

IO to SLC:  In this case, the SLC provides SLCReady', which can be directly fed
to the 8284A.  Using the additional SysClock' synchronizer adds an unneccessary
wait state, but there is little IO to the SLC so it doesn't matter.

IO to other devices.  Other devices do not generate Ready.  In order to give other
devices Rd' and Wr' pulses of adequate width, we provide a wait state generator.

		Trldv		Tdvwh	Tdvawh	Trlrh		Twlwh
8255A-5	200 (150pf)	100		30		300		300
8259A-2	120 (100pf)	160		0		160		190
8274		200 (150pf)	150		0		250		250
WD2001F-30	220 (50pf)	130		60 !!		300		175
9513		160 (100pf)	80		0		160		150
8237A-5	140 (100pf)	160		30		200		160

So 1 wait state works in the worst case.  By the same logic used for ROM reads,
if the decoded addresses generate ready, then if the input to the 8284 is valid
after the rising edge of T1 but before the edge of T2, then there will be one wait
state.  Two wait states would be perfectly acceptable since there are few IO
references.

There is a problem with write data hold time for the WD2001.  The  WD2001
needs 60 ns, and the 8088 can only guarantee 55.  One possible solution is to
hang the WD2001 on the memory bus (MD) instead of the processor bus (AD). 
This will provide additional hold time since the bus transceiver would delay the
data from the 8088.  This would require that we use non-inverting transceivers
(e.g. 8286).


*start*
00364 00024 US 
Date: 12 March 1982 12:50 pm PST (Friday)
From: NDSmith.PA
Subject: Re: Voice volumes
In-reply-to: Stewart's message of 11 March 1982 4:20 pm PST (Thursday)
To: Stewart
cc: verplank, Swinehart, Pasco, dalal, ndsmith, purvy.es, trigoboff, roberts

I heartily agree with Larry. Speech compression is a tar pit, at the moment. 

						Nancy


*start*
03714 00024 US 
Date: 12 March 1982 8:21 pm PST (Friday)
From: Stewart.PA
Subject: Chip counts for Lark ETT design
To: Voiceproject↑.pa

Second colum is page number on ETT prints.

40 pin packages:
8088		1	Main CPU
8237A-5	1	DMA controller
8274		3	RS-232 controller
9513		4	Programmable Timer
SLC		5	Ethernet controller
8255		7	PIO
8255		7	PIO
8088		9	Slave CPU

	Total:		8

28 pin packages:

WD2001F-30	4	Encryption
8259A-2	4	Interrupts
I2764		7	Main CPU EPROM
I2764		9	Slave CPU EPROM  (250 ns)

	Total:		4

24 pin packages:

20 pin packages:

S373		1	Main CPU and SLC address latch
8282		1	8237A-5 address latch
8286		1	Memory data bus transceiver
8287		2	Offboard bus transceiver
LS240		2	Offboard control line driver
LS240		2	Offboard control line driver/receiver and inverters
8282		9	Shared memory address (high)
8282		9	Shared memory address (low)
8286		9	Shared memory data transceiver
8282		9	Local address latch
LS299		9	Input shift register

LS374		all	synchronizers

	Total:		12

18 pin packages:

8284A		1	Clock generator

	Total:		1

16 pin packages:

LS138		2	IO Address decoding
256x4 rom	2	Main system control signals
LS153		2	Wr' and Rd'
N123		3	Watchdog timer and reset pulser
PLAT		3	Timing components for N123
PLAT		5	Ethernet terminators and pullups
S158		6	CASIn' generator
S158		6	Address multiplexor
S158		6	Address multiplexor
PLAT		6	Damping resistors
PLAT		7	DIP switches
PLAT		7	DIP switches for ID register
26LS31	7	RS-422 drivers
26LS32	7	RS-422 receivers
64K RAM	8	0
64K RAM	8	1
64K RAM	8	2
64K RAM	8	3
64K RAM	8	4
64K RAM	8	5
64K RAM	8	6
64K RAM	8	7
LS166		9	Output shift register
32x8 rom	9	Slave control ROM

	Total:		24

14 pin packages:

1488		3	RS-232 receiver
1489		3	RS-232 driver
12.288MHz	4	Audio clock
23.53MHz	5	Processor and Ethernet clock
100ns		6	Memory control delay line

	Subtotal:	5

	LS00 sections
		2	IO' OR Syn(Rd OR Wr)
		10	PreSlaveReq' OR SynGSlaveDAck'

	Subtotal:	1		(half empty)

	LS02 sections
		2	EnOffBoardBus
		6	RefDAck' AND RefReq'
		10	SelOSR AND SlaveWr'
		10	OSRClk'

	Subtotal:	1		(1 extra section)

	LS04 sections
		1	ALE  clock for main cpu address latch
		1	AEN' output enable for DMA address latch
		2	EnOffBoardBus'
		2	SelROM'
		2	SysClock'
		2	SelSLC
		3	SIOInt to interrupt controller
		5	RcvData'
		5	EtherIn
		5	FClock
		6	CascadeReq'
		9	SynTSN'
using LS240 section:
		2	SLCDAck
		2	Reset'
		2	BAd01'
		2	BAd02'

	Subtotal:	2	(use 20 pin bus inverter?)  also 4 sections of 240 left

	LS08 sections
		2	(Wr' OR Rd')'
		3	res'
		3	WDTReset' OR ManReset'
		9	AudShClk

	Subtotal:	1

	LS11 sections
		4	WD2001 pin A0
		4	WD2001 pin CS'

	Subtotal:	1		(1 extra section)

	S10 sections
		6	RAS0  (start memory cycle)
		6	RAS0'

	Subtotal:	1		(1 extra section)

	LS32 sections
		3	KickWDT OR Reset
		7	SelPIO' AND Wr'
		6	MWE'
		9	GSlaveDAck'

	Subtotal:	1

	LS38 sections
		5	XmtData'  (Ethernet)

	Subtotal:	1

	LS74 sections
		3	ManReset SR flop  (pushbutton debounce)
		4	EncInt

	Subtotal:	1

	S74 sections
		6	EarlyRd'
		7	ManNMI SR flop  (pushbutton debounce)

	Subtotal:	1

	LS393 sections
		4	T1Clk and multiples  (12.288 MHz crystal)
		5	Ethernet clocks

	Subtotal:	1

	8T09 sections
		1	PALE -> ALE'
		2	SLCReady'
		5	SLC pin R/W' -> PDT

	Subtotal:	1

D-flop sections
SysClk'	1	Hold synchronizer
SysClk'	2	Wait state generator
SysClk'	4	SynTSN synchronizer
SysClk'	4	  same
SysClk'	9	SlaveReady
SysClk'	9	SynGSlaveDAck'
SysClk'	9	SlaveReq

	Subtotal:	1	(20 pin)

	Total:		18

SIPS
		7	AD pullups
		7	SAD pullups
		7	MD pullups
		7	ID pullups
		7	extra bus pullups & MOS
		7	TTL pullups
		7	More TTL pullups

Totals:
	40 pin	8
	28 pin	4
	20 pin	20
	18 pin	1
	16 pin	24
	14 pin	18
	SIP		7 or 8 if more MOS pullups needed
*start*
01472 00024 US 
Date: 17 March 1982 10:32 am PST (Wednesday)
From: ornstein.PA
Subject: Update Report on Various Items
To: Stewart
cc: VoiceProject↑
Reply-To: ornstein

1. I've got Hartnet's assistant (He was out) working on the problem of getting us
early samples of the 8088-2 and 250 ns. 2764's. She (or he) will call us.

2. I talked to Markle in El Segundo - told him about the ability to transmit but
not receive at nominal 3 MHz (he was very interested) - briefly summarized the
Ready problem (he said they had a problem in some useage that might be
explained by that) - also asked him to expedite the microcode listings which he
said he'd do.

3. Delay lines - it seems the cheaper 20ns tap ones have long delivery (June) as
they have to be made to order. So Mike says he told you we were sticking with
the older ones ($40 each) which are due in April 3 (Joe is checking to see if we
can get them before that - mfgr. is on east coast. So we don't have any order in
for cheaper ones; I think we should place one pronto, no? And change the
present dwgs. to the $40 jobbie for now. (Does this screw up the layout - is the
chip bigger - looks to me as though you allowed room??)

4. I'm waiting for a return call from Joe to check on Prom deliveries - they're
definitely ordered. I'll also ask him to investigate a 74153ALS. 

5. What are the AMD part numbers of the 8286 and 8287 equivalent? Couldn't
spot your AMD catalogue in the (ahem) chaos.

Cheers,

S.
*start*
00844 00024 US 
Date: 18 March 1982 1:07 pm PST (Thursday)
From: ornstein.PA
Subject: Loan of Alto 3K Cram to Bob Belleville
To: Levin
cc: Guibas, Stewart, ornstein, Taylor

Bob Belleville would like to borrow a 3K Cram on extended loan from CSL. We
have four:

	1. Lilac
	2. Etherphone
	3. Guibas'
	4. Spare

The first three seem out of the question as they are devoted to vital special use
and we certainly need a spare for repair.

The 2K Prom he's offering in exchange has Mesa 41 blown in it. I am led to
believe this would satisfy all Leo's needs (includes floating point) and in fact
that Leo wouldn't know the difference. The question is: am I led correctly? And
Leo, do you have any reason to care that you know of? Obviously if we tried it
and any problem materialized we would promptly reverse matters.

Comments?

Severo  

*start*
00340 00024 US 
Date: 19 March 1982 12:33 am PST (Friday)
From: Levin.PA
Subject: Re: Loan of Alto 3K Cram to Bob Belleville
In-reply-to: ornstein's message of 18 March 1982 1:07 pm PST (Thursday)
To: ornstein
cc: Levin, Guibas, Stewart, Taylor

Sounds OK, provided of course that Leo is happy with the proposed
arrangements.

Roy

*start*
01623 00024 US 
Date: 21 March 1982 9:14 pm PST (Sunday)
From: Stewart.PA
Subject: 2764 test patterns
To: Chang
cc: VoiceProject, McCreight, Stewart

[Indigo]<Voice>EP>Test2764.mesa is a Cedar program which generates test .mb
files for 2764s.  Since you probably cannot run it, I'll describe the output:

[Indigo]<Voice>Temp>IncLow.mb

Contains one memory, called IncLow.  It is 8192 8 bit values which repeat 0 - 255
over and over (32 times).  Thus the data is the low 8 bits of address.

[Indigo]<Voice>Temp>IncHigh.mb

Contains one memory, called IncHigh.  It is 8192 8 bit values.  The value 0
occupies the first 32 locations, the value 1 occupies the next 32 locations, and so
on up to the value 255 occupies the last 32 locations.  Thus the data is the high
8 bits of the address.

If you want any other data patterns, let me know.

Our 2764 sil macro has the following pin names:

pin	name
2	A0
23	A1
21	A2
24	A3
25	A4
3	A5
4	A6
5	A7
6	A8
7	A9
8	A10
9	A11
10	A12

11	Q0
12	Q1
13	Q2
15	Q3
16	Q4
17	Q5
18	Q6
19	Q7

1	VPP
27	PGM'
28	VCCA
26	VCCB
14	GND
20	CE'
22	OE'

The idea behind the second VCC pin is to allow plugging any of 2716 2732 and
2764 into the same socket.  Pin one of a 2716 would plug into pin 3 of the 2764
socket.


Notes on the Lark wiring:

In our system, we have wired the lsb data bit to Q0 and the lsb address to A0,
and both address and data are low true.  I should have made Pin 2 be the high
order address.  We will use the address reversal facility of PNEW to make 2764s
for our system for now and will probably require the addresses later.  Until then,
we cannot use 2716s.

	Larry
*start*
00458 00024 US 
Date: 21 March 1982 9:50 pm PST (Sunday)
From: Stewart.PA
Subject: Layout/stuffing/proms
To: VoiceProject↑
cc: Stewart

I've marked up an updated ETT42.sil (layout) for Mike's stuffing efforts.

[Indigo]<Voice>ETP>*.mb are probable PROM conetents for the two proms, see
[Indigo]<Voice>EP>LarkProms.df if you are interested.

To do:  Cables for the J2 and J3 connectors:  Ethernet, Audio, Console
pushbutton, NMI pushbutton.

	-Larry

*start*
01092 00024 US 
Date: 21-Mar-82 23:05:54 PST (Sunday)
From: Chang.pa
Subject: New Pnew.run Handling Upto 16Kx16
To: McCreight.pa, Ornstein.pa, Stewart.pa
cc: Thacker.pa, Thompson.pa, Boggs.pa, Swinehart.pa, Pasco.pa, Chang.pa

I just modified Pnew.run to handle upto 16Kx16 PROMS (4Kx16 was the limit). I don't have any chip to try out, so really would like to have volunteers.....

File is on [MAXC]<Chang>Pnew.run. Two PROM-types have been added: #23 for I2732 and #24 for I2764 (assumed that they have nearly identical pin assignment like I2716 so the data output pins are reversed from our assignments). Also, in Diagnostic mode, LISTPROM, COPYPROM are capable to work on those large chips. Due to limited memroy Pnew fuse 4k location at a time and have to reload image in order to fuse the next 4k locations; to fuse a I2764 takes quite a long time.

Please let me known any problems as soon as possible.

P.S. to Servero and Larry: your personality module is in my office. If you have a chip you can try it out here in Bldg 96; the Dandelion Lab. has a ProLog programmer.

Tom 
*start*
00717 00024 US 
Date: 22 March 1982 8:56 am PST (Monday)
From: Stewart.PA
Subject: Speech compression
To: NDSmith, Verplank
cc: VoiceProject↑

---------------------------

Date: 22 March 1982 8:25 am PST (Monday)
From: Eldridge.ES
Subject: Re: Voice Output
In-reply-to: Kinkead.DLOS's message of 18 March 1982 9:47 am CST (Thursday)
To: Kinkead.DLOS
cc: JOHNSON.HENR, Hallgren.pa, Griffith.pa, SunriseForum↑.DLOS
Reply-To: Eldridge

I have an algorithm that compresses speech data from a Codec and will reduce
the data rate by half with little reduction quality.  Greater data rate reduction is
possible with some degradation in quality.

George

------------------------------------------------------------

*start*
01169 00024 US 
Date: 22 March 1982 9:55 am PST (Monday)
From: ornstein.PA
Subject: Hardware
To: CSL↑, ISL↑
Reply-To: ornstein

If you never have occasion to handle IC's from Mike's lab, read no further.

Over the past weekend someone borrowed Mike's key, went into the main IC
cabinet, left it unlocked, and put the key back in the wrong place. Also someone
used up the last 74S158 from an IC drawer and failed to notify Mike to order
more. So this morning when he went to stuff our board.......

By now we have some quite expensive and slow or difficult-to-replace stock. (I
know - we're using it in the Etherphone!) There's a small number of us who
have to use Mike's stock - if we don't ALL follow the rules of etiquette and
caution, I'm going to protect those of us who DO, by starting to lock things up
tighter. Nobody wants that so PLEASE - pay attention. 

(For common parts, it's easy to have main stock locked up tight with a few parts
available for general access. That gets harder as the parts become big, less
numerous, more-expensive, electrostatically sensitive, oddball, etc. Nonetheless, if
we have to do it, we will.)   

C'mon guys,

Severo

*start*
00868 00024 US 
Date: 22 March 1982 3:37 pm PST (Monday)
From: Stewart.PA
Subject: TI TBP18S030
To: Chang
cc: Stewart

Our Harris personality module has stopped working.  I used the same command
file (with 0/T substituted for 7/T) to program a TI TBP18S030.  The question is,
will the pinouts be the same?

Here's the original command file.

// MakeLarkSlaveProm.cm
// L. Stewart March 22, 1982  1:57 PM
// Use PM9039A personality card + PA16-2 pinout adapter +
//     32x8 (H) configurator
// Make a Harris 7603 Prom
PNEW LarkSlaveProm.mb/F LarkSlaveProm/M 7/T A/R 0/C 0/B 0/A 0/S

Here's the modified one.

// MakeLarkSlaveTIProm.cm
// L. Stewart March 22, 1982  2:43 PM
// Use PM9046 personality card + PA16-4 pinout adapter +
//     32x8 (L) configurator
// Make a TI TBP18S030 Prom
PNEW LarkSlaveProm.mb/F LarkSlaveProm/M 0/T A/R 0/C 0/B 0/A 0/S

	-Larry
*start*
01521 00024 US 
Date: 26 March 1982 11:45 am PST (Friday)
From: Stewart.PA
Subject: Parts for the ETT Etherphone
To: Overton
cc: VoiceProject↑
Reply-To: Stewart

Type		    |    Numbers	| Comments

40 PIN
	I8088-2ES	2		8 MHz Processor		
	I8237A-5	1		DMA
	AM9513	1		Timer Chip
	I8274		1		Serial Line Controller
	I8255A-5	2		Parallel IO Ports
	SLC		1		Ethernet Controller

28 PIN
	8259A-2	1		Interrupt Controller
	WD2001F-30	1		Encryption Chip (or E-02)
	I2764		2		Eprom (250 ns)


20 PIN
	LS240A	2
	LS299		1		(Input) Shift Reg
	LS374		1
	LS373		2		
	S373		3		
	I8286		2
	I8287		1


18 PIN
	I8284A	1


16 PIN
	F93427	1		256 x 4 Prom
	HM4864-1	8		Hitachi 120 ns. 64K memory
	LS166		1		(Output) Shift Reg
	Dip Sw 	2		(16 pin Dip Switches)
	AM26LS31	1
	AM26LS32	1
	LS138		1
	PLAT		3
	N123		1
	LS153		1
	S158		2
	TPB18S030	1		32 x 8 Prom

14 PIN
	Delay Line	1		Bel Fuse 0447-0100-02
	1488		1
	1489		1
	LS38		1
	LS74		1
	LS32		1
	LS04		3
	LS08		1
	8T09		1
	LS00		1
	LS11		1
	LS393		1
	S10		1
	S74		1
	LS02		1

XTALS
	12.288 MHz	1
	23.53 MHz	1

------------------------------------------------------------

*start*
00576 00024 US 
Date: 5 April 1982 10:23 am PST (Monday)
From: Deutsch.pa
Subject: Re: Help!
In-reply-to: Your message of 1 April 1982 9:13 am PST (Thursday)
To: OKI
cc: D0Users↑.pa
Reply-To: Deutsch

I have a complete set of microcode and a Bcpl driver program for running the
Dolphin RS232 port in asynchronous mode.  It has worked fine at speeds up to
9600 baud.  It does parity checking and generation, but no more complex
checking or protocols.  See [Phylum]<Deutsch>rs*.mc and rstest.bcpl. 
Documentation is practically non-existent, but I'll answer questions.

*start*
01363 00024 US 
Mail-from: Arpanet host SU-AI rcvd at 5-APR-82 1446-PST
Date: Mon Apr  5 13:37:31 1982
To: info-micro at mit-ai
From: ittvax!qumix!msc at Berkeley
Subject: 8086 compiler and assemblers
Source-Info:  From (or Sender) name not authenticated.


	This is in reply to arpavax:mosher's query. My mail reply was
	returned as undeliverable.

	Try Microtec in Sunnyvale, CA (408 733 2919) for cross
	assemblers written in FORTRAN IV, Virtual Systems in Walnut
	Creek, CA (415 935 4944) for cross assemblers written in
	Macro-11, Boston Systems Office Waltham, MA (617 894 7800) for
	the same, Whitesmiths in New York City (212 799 1200) for a C
	cross-compiler and assembler written in C, and Language
	Resources in Boulder, CO (303 449 8087) for Pascal

	Microtec's advantage is price and they give you the source
	but it's a pain to make it run under f77 (at least on 4.1bsd).
	BSO and Virtual Systems will not release the source.  BSO do not
	have versions to run under any Unix and Virtual can only supply
	versions to run under V7.

	It you want any more info. let me know.  We have the Microtec
	stuff but have had difficulty installing it.  We will be getting
	Whitesmith's stuff soon.  It's only just becoming available.
	We chose Microtec because we have 4.1 bsd and so BSO and Virtuous
	Systems couldn't help.

	Mark Callow
	Qume Corp.


*start*
00433 00024 US 
Mail-from: Arpanet host SU-AI rcvd at 6-APR-82 0550-PST
Date: Mon Apr  5 17:59:22 1982
To: info-micro at mit-ai
From: minow at Berkeley
Subject: Re: 8086 compiler and assemblers
Source-Info:  From (or Sender) name not authenticated.


8086 C compilers (and a Unix lookalike) are available from Mark Williams
Co., 1430 Wrightwood, Chicago IL 60641.  The system is called COHERENT.

Martin Minow
decvax!minow


*start*
00389 00024 US 
Date: 14 APR 1982 0937-PST
From: STEWART.PA
Subject: Code generators
To:   duvall
cc:   stewart

See [Indigo]<Voice>EP>Test117.c.

Roughly speaking,

p->c += 1;

doesn't work unless c is the first item in the structure.  No
indexing code is generated.

Operations like |= and &= doen't seem to work either.

p->c = p->c+1; work, but generate lots of code.

	-Larry
*start*
05126 00024 US 
Date: 15 April 1982 10:20 am PST (Thursday)
From: Stewart.PA
Subject: 8088 Single Step
To: VoiceProject↑.pa
cc: Stewart

I've been working on an EPROM monitor for the 8088 Lark processor.  The
monitor has, among other things, facilities for a single breakpoint and for single
stepping.  The process of trying to make it work has been very educational!

Background:

When the 8088 takes an interrupt, the following things happen:
	The CPU Flags (FL) are pushed on whatever stack was set up
	The Code segment register (CS) is pushed
	The instruction pointer (PC or IP) is pushed
	The interrupt enable and single step flags are cleared in the Flag reg.
	A new CS and IP are picked up from the interrupt vector table according
to the "type" of the interrupt.

External interrupts have hardware selected types up to 255.
Divide error is type 0
Single step (Trace trap) is type 1
Non-maskable is type 2
Breakpoint is type 3  (Breakpoint is a one byte instruction that causes a software
interrupt.)

The end of an interrupt handler has an IRET instruction, which pops the
original IP, CS, and Flags off the stack and resumes execution.

The single step handler sets up the machine registers the way it wants, puts the
user IP, CS, and flags on the stack, ORs the trace trap bit into the flag word on
the stack, and executes an IRET.

This works fine except when external interrupts are enabled.

According to the 8088 manual, when an external interrupt occurs during an
instruction which is being single stepped, the external interrupt is recognized
"first", the user FL, CS, and IP are pushed, IF (interrupt flag) and TF (trace
flag) cleared, and IP and CS loaded from the appropriate vector.  Then, before
execution of the first instruction of the external interrupt handler, the CPU
notices that the single step flag used to be on.  Now FL (with TF=0) is pushed,
along with the CS and IP for the external interrupt handler, and control passes to
the first instruction of the single step handler.

Fine, the manual is worded funny, but this scheme makes it possible to either
single step the interrupt handler or not, as you choose.  The single step handler
can detect this case by inspecting the FL word on the stack.  If the trace bit is
set, then it was a vanilla single-step interrupt.  If the trace bit is clear, then it is
an external interrupt on top of the single step.

Since Lark uses interrupts to do memory refresh, we want interrupts to run at
full speed, so my single-step handler does this stack inspection.  If it finds a
combined single-step and external interrupt, it takes the following action:

	Pops the external interrupt handler IP, CS, and FL into temporaries
	Pushes an FL, CS, and IP that will cause control to go to the single-step
handler (itself).
	Pushes the external interrupt handler IP, CS, and FL back
	Executes an IRET

This reorganizes the stack so that the external interrupt handler executes "first"
and at full speed before control returns to the single step handler with the stack
in the simple condition of just a single step trap.

For various reasons, the only active interrupt (the clock) has roughly a 50%
chance of occuring right away if interrupts are enabled at a "random" time. 
Since I was running the monitor with interrupts disabled and enabling them
only for the duration of the single stepped instruction, I expected about half of
single stepped instructions to invoke the stack reordering.

The observed effects of all this are as follows.

Sometimes instructions work correctly, a single instruction is single stepped and
control returns to the monitor with the IP incremented past the instruction.

Other times, the single step code returns to the monitor without incrementing the
IP.

I modified the first instruction of the single step handler to increment a register
on each invocation, and prepared a field of insteructions to single step which
incremented a different register.

With interrupts disabled, both registers count by 1 for each single step.  This is
expected.  This also happens sometimes when interrupts are enabled.

Other times  (those occasions when the user IP does not change), the "user"
counter does not change and the "single-step invocations" counter has counted
by two.

I take this to mean that an external interrupt has been recognized BEFORE
execution of the single-stepped instruction and that further, an extraneous
single-step interrupt is produced.

The manual explicitly says that when IRET operates to enable interrupts, they do
not become enabled until the end of the following instruction.

I remember hearing that early 8088s had a bug in this area, so that loading a
segment register (MOV SS,AX or so), which is supposed to disable interrupts for
one instruction, did not.  I checked the 8088 chip and it indeed was an old one
so I plugged in a new, modern, 8088-2 ES.  No difference.

One possibility is to have the single step handler keep track of the last IP value
and to "keep trying" the single step until it changes.

Another possibility is to only do single step with interrupts turned off.

	-Larry

*start*
00230 00024 US 
Date: 15 APR 1982 1255-PST
From: STEWART.PA
Subject: Assembler bug
To:   Duvall
cc:   Stewart

[Indigo]<Voice>EP>Test118ml.asm and test118.ld

TEST AH,1 generates the same instruction as TEST AL,1.
	-Larry
*start*
00819 00024 US 
Date: 11 April 1982 1:29 pm PST (Sunday)
From: ornstein.PA
Subject: Re: 3K Control Ram
In-reply-to: verplank's message of 9-Apr-82 15:10:42 PST (Friday)
To: verplank
cc: SDSupport, Ornstein, Irby, Purvy.es, Trigoboff, Stewart, DBrown, Guibas, Taft

Bill,

If you will arrange with Darrah Brown (DBrown), our Alto fixer, I think he can
arrange to swap you the 3K Control Ram from Leo Guibas' machine for a regular
2K Cram. It is my understanding that we'll need to swap control boards (as well
as with the Ram board itself) since the control board was modified as part of the
upgrade.

This is a long-term trade but someday we might want it back - so when the
swap is complete, let's record the fact so in future we'll remember. (Although I
presently see no forthcoming requirement...)

Severo 

*start*
00282 00024 US 
Date: 19 April 1982 3:24 pm PST (Monday)
From: Stewart.PA
Subject: 8086 tools
To: Karlsson.es
cc: Stewart

Can you tell me the present status of the 8086 tools?  Assembler/linker/debugger
and whatever else?
	-Larry
(I visited in October last year I think.)

*start*
00638 00024 US 
Date: 25 April 1982 7:32 pm PDT (Sunday)
From: Stewart.PA
Subject: TTLDict.analyze bug.
To: Chang
cc: VoiceProject↑, Stewart, Gifford, McCreight

I was surprised to find that the 74LS393 in the Lark processor did not have
ground wired.  I poked around and discovered that the LS393 is a 14 pin dip, but
the dictionary says it is a 16 pin chip.  My board does have a wire to pin "8",
off the end of the chip, and all the signals on the 8-14 side are off by two pins.

I don't know who else might be affected.

How do I get the board fixed?  Is route prepared to deal with a dictionary entry
that changes?

	-Larry

*start*
00527 00024 US 
Date: 25 April 1982 7:36 pm PDT (Sunday)
From: Stewart.PA
Subject: Programming 2764s.
To: Chang
cc: VoiceProject↑, Stewart

Something might be wrong with verify.

After you left Friday, the programmer in Bayhill complained about bad bit 0 at
address 0, so I went home.

Saturday, I got the same complaint from the CSL Prolog with two different chips.
I build a small jig to test the EPROM by hand and it seems to have the correct
contents.  I plugged it into my CPU and it seems to work fine.

	-Larry

*start*
00255 00024 US 
Date: 26 April 1982 9:26 am PDT (Monday)
From: Gifford.PA
Subject: Re: TTLDict.analyze bug.
In-reply-to: Stewart's message of 25 April 1982 7:32 pm PDT (Sunday)
To: Stewart

Hmmm.  My TTLDict.analyze says it's a 14 pin dip.

Dave