Jump to content
FarmerPotato

Bringing up "Geneve 2020": Debugging Help Please!

Recommended Posts

25 minutes ago, FarmerPotato said:

by isolate, do you mean sever it from  the backplane? I will test the CPU card in isolation—power supply pins directly to it. Was thinking of inserting a buffer chip, though the CLKOUT does have very crisp edges..

 

(I do need a ‘74 to divide 6MHz to 3MHz. Also considering putting a separate 3 MHz oscillator just for the UARTs so they don’t depend on bus speed.)
 

I don’t have termination.

I see 220+330 termination in my S-Bus Altair 8800 backplane, which is comparable. but the retro club guys said it doesn’t matter at 3MHz. 
 

I did get a quantity of 220+330 resistor network SIPs for this purpose. 


my chips are 88 date codes, Phillipines. I think they are ANL, but my brain got fuzzy 

Testing the CPU card in isolation might help, see if CLKOUT still has the glitches.

 

Would be interesting to see if a 3 MHz oscillator works. This would assume that the CRU interface is synchronised just to the CRUCLK signal, not needing a synchronised clock phase as well.

 

The TM990 backplane has some resistor terminations on some of the signals, so even at 3 MHz it looks like the nature of some signals means they need termination. More signals have terminations on the 8-slot backplane than on the 4-slot backplane. See table 1 (page 4) and pages 8 and 9 of http://www.stuartconner.me.uk/tm990/scanned_docs/TM990_510_520_Card_Cages.pdf.

 

Share this post


Link to post
Share on other sites

@Stuart

I see the set of terminated signals for the 4 slot backplane. They are mostly signals you must have pull-ups on for when the CPU is in RESET or HOLDA state. So other cards don’t get spurious WE for instance.


so I could interpret it as yeah 7 slots or 5.25” needs termination. To prevent clock skew maybe. My backplane is Eurocard 0.8” x 8 so 5.6”. 
 

there’s a TI application note on this topic whose math I couldn’t follow but I’ll go back to it. 


CLKOUT:

 

I think we deduced earlier in this thread that the phase of  CLKOUT was not important to the 9901. It’s possible the 9902 doesn’t need a particular phase either. 
 


 

 

Edited by FarmerPotato

Share this post


Link to post
Share on other sites

The last time I found 9902s for a reasonable price was about eight years ago. There was a salvage operation in PA that pulled all of the chips that were saleable off of working boards they were scrapping. I got some 9900s, 9901s, 9902s, 9911s, 9914s, and 9995s from them. The boards (mostly 990 family stuff and test equipment) had already been plucked to uselessness by the time I encountered these folks. They didn't have a lot of any single chip, but they were all good chips and their prices were unbeatable. Lately, the only sources for 9902s are Chinese or British unless you go to one of the major obsolete parts sellers that sell parts for abhorrent prices, primarily in the aviation or military markets. The Chinese ones are knockoffs, but may work fine (and their prices are low), the British ones are expensive, but they are original NOS chips. LittleDiode is the British source on eBay. Everything they sell is a bit overpriced--but they will often accept more reasonable offers for orders of multiple parts.

  • Like 1

Share this post


Link to post
Share on other sites
6 hours ago, FarmerPotato said:

@Stuart

I see the set of terminated signals for the 4 slot backplane. They are mostly signals you must have pull-ups on for when the CPU is in RESET or HOLDA state. So other cards don’t get spurious WE for instance.


so I could interpret it as yeah 7 slots or 5.25” needs termination. To prevent clock skew maybe. My backplane is Eurocard 0.8” x 8 so 5.6”. 
 

there’s a TI application note on this topic whose math I couldn’t follow but I’ll go back to it. 


CLKOUT:

 

I think we deduced earlier in this thread that the phase of  CLKOUT was not important to the 9901. It’s possible the 9902 doesn’t need a particular phase either. 
 


 

 

 

I certainly could find no operational difference with either phase of CLKOUT on my boards.

 

Jim

  • Like 1

Share this post


Link to post
Share on other sites
2 hours ago, Ksarul said:

The last time I found 9902s for a reasonable price was about eight years ago. There was a salvage operation in PA that pulled all of the chips that were saleable off of working boards they were scrapping. I got some 9900s, 9901s, 9902s, 9911s, 9914s, and 9995s from them. The boards (mostly 990 family stuff and test equipment) had already been plucked to uselessness by the time I encountered these folks. They didn't have a lot of any single chip, but they were all good chips and their prices were unbeatable. Lately, the only sources for 9902s are Chinese or British unless you go to one of the major obsolete parts sellers that sell parts for abhorrent prices, primarily in the aviation or military markets. The Chinese ones are knockoffs, but may work fine (and their prices are low), the British ones are expensive, but they are original NOS chips. LittleDiode is the British source on eBay. Everything they sell is a bit overpriced--but they will often accept more reasonable offers for orders of multiple parts.

In the UK, Lez Anderson has always been a very reliable source of retro computer chips.

I would offer to send you a tested one but all my stuff is packed up at the moment in preparation for a house move.

 

Jim

  • Like 1

Share this post


Link to post
Share on other sites

There was a guy in England that re-implemented the TMS9902 in programmable logic. I traded several emails hoping he would either sell them individual or let me buy a lot and resell them, but eventually the emails trailed off.

 

I find the implementation of old chips with new silicon fascinating - like the F18A, or the Commodore SID chip.

  • Like 2

Share this post


Link to post
Share on other sites
1 hour ago, dhe said:

There was a guy in England that re-implemented the TMS9902 in programmable logic. I traded several emails hoping he would either sell them individual or let me buy a lot and resell them, but eventually the emails trailed off.

 

I find the implementation of old chips with new silicon fascinating - like the F18A, or the Commodore SID chip.

@pnr wrote a VHDL core

 

I want to use real 9902 chips. 

 

But I also wanted to use Verilog 9902 as an internal interface. So that for instance, RS232/3 could be an internal port (CRU 1540) where you accessed a debugging console with your favorite term program (FastTerm etc).

 

Going further, make a 9902-lookalike for any character-oriented device. (with extensions for CRU parallel byte or word read.)  This leads into a Unix-like driver model, where everything is either a character (serial) or a block device (random access). It's an idea with pros and cons--Like, is CRU code inefficient for a character device interface. But that's a topic for another thread.

 

 

  • Like 1

Share this post


Link to post
Share on other sites
11 hours ago, Ksarul said:

The last time I found 9902s for a reasonable price was about eight years ago. There was a salvage operation in PA that pulled all of the chips that were saleable off of working boards they were scrapping. I got some 9900s, 9901s, 9902s, 9911s, 9914s, and 9995s from them. The boards (mostly 990 family stuff and test equipment) had already been plucked to uselessness by the time I encountered these folks. They didn't have a lot of any single chip, but they were all good chips and their prices were unbeatable. Lately, the only sources for 9902s are Chinese or British unless you go to one of the major obsolete parts sellers that sell parts for abhorrent prices, primarily in the aviation or military markets. The Chinese ones are knockoffs, but may work fine (and their prices are low), the British ones are expensive, but they are original NOS chips. LittleDiode is the British source on eBay. Everything they sell is a bit overpriced--but they will often accept more reasonable offers for orders of multiple parts.

I love surplus stories.

 

I don't see any 9902 in littlediode store.

 

Specspecialty near Ft Worth TX has quite a few 9902NL, 9902ANL, 9902NL-40 for $6-$8. I'm going to give them a try.

 

$1 vs $7 per 9902 has a big influence on whether I use 1 real chip, or up to 4 (it's easy to skip 2x  9902 for keyboard/mouse)

Share this post


Link to post
Share on other sites
On 8/27/2021 at 2:14 PM, Stuart said:

Are you able to isolate CLKOUT near the CPU to see if it's picking up interference from the backplane?

 

Does adding terminating resistors to the CLKOUT at the 'end' of the backplane make any difference? 220Ω to +5V and 330Ω to GND.

 

Are you using a TMS9902NL or TMS9902ANL? Might be best to use the latter version just in case the change to the "A" revision helped address your problem ...

Today I pulled 3 9902s from NanoPEBs. One was hardly ever used, and came with TMS9902ANL MBS9116 19313 Philippines.

 

That 9902A transmitted correctly 98% of the time at 2400,8,N,1.  I still can't get good reception (hardware or software?)

 

The other two had the same issues as before. At best, bit >08 is masked off.  ('door' -> 'dggr')

Curiously, one of the Jaime Maililong 9902 chips is marked "DBS 8815" which is exactly the same as the 10 from polida2008 (Shenzhen).  The older 9902 (maybe '83?) didn't behave any better, either.

 

So I've got 10 DBS 8815 from China, and 1 that came through Jaime Maililong on a NanoPEB.

 

Are the DBS 8815 fakes? I dunno. None of them is printed as crisply as the 9902A, but it's close. The 10 seem rougher than the 1. On the bottom side of the plastic, half of them have cavity markings (I6, J1, etc) in the ejector hole. One of the 10 screams fake, having the text SINGAPORE faintly visible, though the top said Philippines! The printing looks straight, but the vertical position varies. Red flags at least.

 

All9902s.thumb.png.05bb87b128a09677c2bfdbe1efcad02d.png

Lower 3 are out of NanoPEBs.

 

  • Like 1

Share this post


Link to post
Share on other sites

Bug found!  I located the LINEIN buffer in ROM.

 

First I got my scope to trigger on 3617  or stcr *r7,8  

Then I typed spaces.

STCR is reading 0000 0100 from >1380 which is definitely >20 or space.

But it was writing space + a letter to >066A, which is in ROM. Ugh.

 

Not out of the woods yet .  The next instruction is SBZ RIENB. That is supposed to clear the RBRL bit.

 

But just *before* that bit is cleared, TX goes low indicating a start bit! It starts to transmit FF.   Why???

During that start bit, the character to echo back is loaded into the transmit buffer. 

Eventually, it gets transmitted. I see FF 20 on the TX line.

On the receiving end, I see a garbage character (FF? y with two dots in Latin-8859, yep!) then the character echoed back from LINEIN. 

 

Urgh.

 

 

 

 

Edited by FarmerPotato
0000 0100

Share this post


Link to post
Share on other sites

One thing I can tell you about the DBS 8815 chips. Look very carefully at the outline of Texas. Then look at that same outline on the chips with other dates. Pay close attention to the right side of the diagram, as that is the most obvious problem spot. They are likely copies--but they may also work to spec, once you get past the bugs in your program, so don't count them functionally out yet.

  • Like 1

Share this post


Link to post
Share on other sites

>They are likely copies

A bit off topic, but how does one make working copies?

  • Like 1

Share this post


Link to post
Share on other sites
On 8/28/2021 at 7:59 PM, Ksarul said:

One thing I can tell you about the DBS 8815 chips. Look very carefully at the outline of Texas. Then look at that same outline on the chips with other dates. Pay close attention to the right side of the diagram, as that is the most obvious problem spot. They are likely copies--but they may also work to spec, once you get past the bugs in your program, so don't count them functionally out yet.

I can see it now.

 

I used to use HDX with this NanoPEB. It stopped working and I never figured out why. So maybe it was the counterfeit 9902!

 

 

  • Like 2

Share this post


Link to post
Share on other sites

Get this man a refill, chip tender..

And not the cheap stuff either.

Edited by GDMike
  • Haha 1

Share this post


Link to post
Share on other sites
10 hours ago, dhe said:

>They are likely copies

A bit off topic, but how does one make working copies?

In my experience there are 5 types of fake chips.

 

A : A completely different chip with the part number ground off and another part number etched or printed on, this will never work , i found some TMS9909 chips like this.

B : A out of spec or faulty part of the correct chip, usually come out the back door of the factory.

C : A similar part with the same functionality but a different (normally worse spec), I have had op amps like this.

D : A complete copy of the die which may or may not work as well as the original.

E: Reclaimed used parts 

 

For a rare very old chip like the TMS9902 i would think D is unlikely to be worth it and B not very likely after all this time.

C would only give them the option of selling the -4 parts as lower speed.

So you are left with A and E as being most likely but A wouldn't work at all which leaves E.

 

Try rubbing the top of the chip with Acetone to see if any of the printing comes off.

Also, are the legs shorter than you would expect.

 

Jim

 

 

Jim

 

 

 

Edited by Jimhearne
  • Like 1

Share this post


Link to post
Share on other sites

@Jimhearne

i think B is possible, factory reject, and that these chips have been fake labeled and sitting in a warehouse ever since 1988 or so.  Several were defective in the same way. They don’t look used and the pins were perfect and splayed out. 
 

 

Share this post


Link to post
Share on other sites

I tried one of the new 9902A .  It transmits without any glitches. Source was specspecialties. 
 

I still have the weird problem that in the receive function I see a FF go out the TX line, without even loading the transmit register.
 

* RBRL indicates a char is ready

STCR *R7,8 read the char

SBZ RIENB bit 18, clears RBRL

 

 

In fact the TX line activates one cycle before the SBZ RIENB.

 

It’s like some goofy half-duplex behavior 

 


 

 

Share this post


Link to post
Share on other sites
11 minutes ago, FarmerPotato said:

I tried one of the new 9902A .  It transmits without any glitches. Source was specspecialties. 
 

I still have the weird problem that in the receive function I see a FF go out the TX line, without even loading the transmit register.
 

* RBRL indicates a char is ready

STCR *R7,8 read the char

SBZ RIENB bit 18, clears RBRL

 

 

In fact the TX line activates one cycle before the SBZ RIENB.

 

It’s like some goofy half-duplex behavior 

 


 

 

Are we sure it's not the code? Perhaps you could give us all a peek.  :)

 

 

Share this post


Link to post
Share on other sites

Not sure if this of any help but this seems to work here.

TOS is just R4.

 

Looks like I used bit 21 to test if character is ready to read. 

And 18 to reset

 

(This is not the entire file. )

 

[CC] DECIMAL [TC]
CODE CKEY? ( -- n )          \  "com-key"
         0 LIMI,
         R12 RPUSH,           \ save R12 on return stack  *Needed?*
         CARD @@ R12 MOV,     \ set base address of CARD
         TOS PUSH,            \ give us a new TOS register (R4)
         TOS CLR,             \ erase it
\  *** handshake hardware ON ***
         5 SBZ,               \ CARD CTS line LOW. You are clear to send
         UART @@ R12 ADD,     \ add UART, >1300+40 = CRU address
         21 TB,               \ test if char ready
         EQ IF,
             TOS 8 STCR,      \ read the char
             18 SBZ,          \ reset 9902 rcv buffer
             TOS SWPB,        \ shift char to other byte
         ENDIF,
\  *** handshake hardware off ***
         CARD @@ R12 MOV,     \ select card
         5 SBO,               \ CTS line HIGH. I am busy!
\  ******************************
         R12 RPOP,            \ restore old R12  *Needed?*
         2 LIMI,
         NEXT,
         ENDCODE

 

  • Like 1

Share this post


Link to post
Share on other sites

Thanks @TheBF 

 

I think my big may be in the TX side specifically use if the RTSON. I’ve got my RTS out wired to the other sides CTS, with hardware flow control on. so having it low is required to enable reception. 
 

all the sample code I’ve reviewed, even my own code from 1975, brackets the transmission with SBO RTSON, transmit N chars, SBZ RTSON. 

 

I surveyed the code for TE3, TINET, Thierry ‘s titechpages, the 9902 and 990/189 manuals. 
 

I figured I want to receive and transmit simultaneously, so leave RTSON on all the time. but nobody does that…

 

problem: I’ve got to unwire RTS out from other end CTS in, if I want to put this code in. I tried last night and it deadlocked….


If that’s the case, I wonder if this is a bug in the 9902 design? It’s unnatural for there to be a extra transmission after reading a char. And I’m positive it transmits after the receive buffer is read, but before any other access to the chip. 
 

Doing SBZ RTSON shouldn’t cause any wasted time between characters, since RTS stays on until both the transmit shift and buffer registers are empty. 


Simple hardware change…

 

 

  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...