On Wed, 25 Mar 2020, Matt Burke via cctalk wrote: > > no, no confusion, and thanks for the detailed analysis. Now I have to > > find my dremel (I just moved) and check the Dallas NVRAM ;-) > > > > Cheers & thanks again! > > You can buy replacements for the Dallas DS1287A under a new part number > - DS12887A.
They are not exact replacements though as they have an additional address line on AD6 which is used to access extra 64 bytes of internal static RAM. For correct operation with the DS12887A rather than the DS1287A in the 4000/90 the line would have to be driven with logical 0 in the address phase of the bus cycle. I don't know if this is guaranteed by the EDAL glue logic used to drive the DS1287A (TOY in DEC-speak) chip in the 4000/90. My notes indicate that the 0x25400000:0x254000fc 32-bit longword CPU bus address range is decoded to the TOY chip in the 4000/90, and the TOY data byte is transferred on bits 9:2 of the longword accessed. Furthermore the CEAC seems to be selected with 0b001001 in bits 31:26 of the CPU bus address, that is spanning the 0x24000000:0x27ffffff address range. Bits 25:22 are then decoded by the CEAC to individual EDAL bus chip selects (some devices seem to handle multiple chip selects or, more likely, CEAC does incomplete decoding depending on the address subrange). This leaves bits 21:8 of the address undefined for the TOY chip, and it is unknown if they are actually driven, hardwired or left floating. It will depend on the glue logic involved, though given that the DS1287A has a multiplexed AD7:AD0 bus, and in the 4000/90 TOY addresses are presented on bus bits 7:2 and data is presented on bus bits 9:2 chances are bits 9:8 and consequently AD7:AD6 are also driven in the address phase. There's still question of software accessing the TOY using canonical addresses only, i.e. ones in the 0x25400000:0x254000fc range rather than say 0x25400100:0x254001fc, which likely cause AD6 to be driven with logical 1 rather than 0. Of course software could make use of that extra static RAM if accessed deliberately. As I use all my DEC equipment for OS development however I consider it reference hardware and therefore I only accept exact replacements if the original part cannot be used anymore. Since no new DS1287A (or DS1287, for DECstation 5000 systems) chips are available I resorted to reworking old chips to have the original embedded coin cell replaced with a socket for a discrete coin cell mounted such as to match the original clearance of the chip almost exactly. This is important for DECstation 5000 systems, which have the TOY chip mounted in the TURBOchannel slot area with as little as ~0.1" of clearance left with respect to option cards. I actually bought extra chips from a seller on eBay, just to have spares in case something goes wrong in the rework, knowing that they have been forged by replacing the original marking with one giving a more recent date code, one well past the last manufacture date of genuine chips, to pretend they are not as extremely old as they really are. That is quite safe for the rework however, because the way the cell has been embedded makes the marking on the original top of the case of the embedded DS1285 chip clearly readable once the cell has been completely removed. In the end one of the batches I got was good, made with the DS1285 chip, while the other one had the DS12B885 chip instead, so I had to discard it. Now I got yet another batch, but I didn't get to disassembling any of the parts yet. NB the DS12B885 doesn't exist in any datasheet I could track, however there used to be a DS12B887 chip which had a RESET# wiring modification that I think couldn't have been made by just adding a quartz crystal and a coin cell to the DS12885, so perhaps a dedicated DS12B885 core was made to satisfy that application only and never sold in a discrete form. FWIW, Maciej
