Jump to content
joethezombie

Carrera040 Info / Hacking Thread

Recommended Posts

Hey Gang,

 

Thanks @nickpunt, @trag and @Trash80toHP_Mini for your motivating comments. This helps to keep on writing... crazy what I knew back then and already was about to forget (suffering from "project-ADHD" :grin: ).
So good to have a "code refresh" while documenting all this in more detail.

That said, prepare for some serious brain-tease (if your brain hasn't already imploded :lol:) in the just posted part 2hhttp://www.geekdot.com/carrera-in-se-30-code-part-2/
Because I don't want to clutter this thread by upcoming "Hey, new post published!" comments, just follow me on Twitter to get pings about new posts: https://twitter.com/geek_dot 

Share this post


Link to post
Share on other sites

This is fascinating stuff @GeekDot! You're right about the brain implosion, machine code like this is beyond me. I enjoy reading comments in code though, its like a real time way of seeing your work & thought process. Pretty fascinating how each different machine it supports has special nuances & features, hopefully the overlap of code handling non-32bit clean, ram-based video, and pds can be cobbled together :) Good luck!

Share this post


Link to post
Share on other sites

Another quick update:
It's getting clearer every day that little SE/30 and Lady Carrera have an hardware "issue" within their relationship (current status: It's complicated)...

Because the INIT code gets quite far (beyond the 68040 init routine) every 10th-15th try it simply can't be just the driver. There must be some communication/timing issue... 

That said, my logic analyzer just got additional 16 channels (totalling 32) giving me a broader look into what's happening.

 

Because it's always good to know how others solve(d) the same problem/task, I also started to disassemble the Daystar Turbo 040 ROM.... and at about 4000 lines of code I got caught red-handed :lol:

 

53165251_998318357035553_545631977416425

 

BTW: The Turbo 040 (Rev 1 to 3) looks very much like a by-the-book implementation of what is written in section 7 of the "MC68040 DESIGNER'S HANDBOOK", which is good for a better overall understanding.

Edited by GeekDot

Share this post


Link to post
Share on other sites

Thanks for bumping this one, I was looking for a HiRes Pic of the DayStar version and your pic of the Sonnet version in the IP will do. There goes my SE/30 TTL vs. CMOS theory. :-/  But then again, if timings are the issue, there's high speed and then there's HIGH speed logic.

 

@joethezombie I'm still wondering if board rework yielding faster response from the bus driver/buffer ICs on either side of the SE/30 PDS might help? Accelerators that work fine in the IIci, but are SE/30 hostile might feel more cozy and warm in the SE/30 with snappier 74HCT logic going clickety-clicker? The IIci has a mix of TTL type 74LS Logic and faster CMOS logic of the 74HC series. Not familiar at all with the 74F series, I'm guessing it's a bit slower than 74HCT, but I'm usually one clue short on this stuff  .  .  .  at best. :mellow:

 

74F573

74HC(T)573

 

 

Edited by Trash80toHP_Mini
Apparently I can no longer typel ;-/

Share this post


Link to post
Share on other sites

Went back to IP/square one for a reset:

 

Dang, got things all confuzzled between DayStar and MicroMac 040 cards. [:I]  Sounds like these suckers changed hands in every case? Did Sonnet wind up with one or the other? Interesting that there's no active component to be seen on the MicroMac Adapter for the IIsi.

 

carrera040_iisi_adapter_front.jpg

 

On 2/14/2018 at 11:11 AM, joethezombie said:

Finally, not to put a damper on the efforts, but I feel this is going to be a long shot.  I mean, wouldn't MicroMac have made an SE/30 adapter to increase sales of this product?  They made them for the IIsi, IIx, and IIcx, so with the SE/30 mysteriously missing I can only surmise that there is some technical limitation we're going to bump into.  Unless of course, the omission is due to the sealed up nature of the compacts, and MicroMac didn't want to support end users in that endeavor.

 

HRMMM? Forgot about this tidbit. Now I wonder if I might be somewhere on the same continent as the track to a solution to this particular conundrum? It seems like adapters for the IIx/IIcx contemporaries of the SE/30 were direct, unbuffered CPU Socket connection interfaces. Got pics of them? No timing lag from PDS buffering imposed on those two adaptations, that now stands out like a sore thumb to me, but I've not been particularly rational this past week. :blink:

 

edit: trying the Carrera 040 using a IIx or IIcx adapter in a socketed SE/30 comes to mind here. Does testing for function in that configuration sound like it might yield usable info?

Edited by Trash80toHP_Mini

Share this post


Link to post
Share on other sites

One more thought: The socket of the IIx and IIcx run at the same 16MHz clock as the SE/30's, but timings may be right on the edge for supporting such a slow bus as compared to the 25MHz bus of the IIci and 20MHz bus of the later IIsi. Wondering if buffering trows the equation just far enough off that the SE/30 was unsupportable. I have no clue as to possible efficacy of rework substitution of 74HCT buffering on one or both sides of the SE/30 PDS, whether it is in fact appreciably more responsive than 74F logic or if  this makes absolutely no sense theoretically. @Bolle whatcha think?

 

I'll pipe down now. :mellow:

Edited by Trash80toHP_Mini

Share this post


Link to post
Share on other sites

Odd, I've never seen that variant of the Carrera 040 IIsi adapter. Both of mine (one which came with DiiMo IIsi and other with Carrera 040) have a GAL on them, I assume that one in your picture must have it on the other side. You're right that their IIcx adapter has none at all.

post-2093-0-45729300-1489129575_thumb.jpgpost-2093-0-89764000-1489129586_thumb.jpg

 

 

IMG_7019.thumb.jpeg.93ada7adabb159c25bc5412bf16c9ce4.jpeg

IMG_7026.thumb.jpg.b50c407a1cde11b7e534409b5df3f2cb.jpg

Edited by nickpunt

Share this post


Link to post
Share on other sites
9 hours ago, Trash80toHP_Mini said:

One more thought: The socket of the IIx and IIcx run at the same 16MHz clock as the SE/30's, but timings may be right on the edge for supporting such a slow bus as compared to the 25MHz bus of the IIci and 20MHz bus of the later IIsi. Wondering if buffering trows the equation just far enough off that the SE/30 was unsupportable. I have no clue as to possible efficacy of rework substitution of 74HCT buffering on one or both sides of the SE/30 PDS, whether it is in fact appreciably more responsive than 74F logic or if  this makes absolutely no sense theoretically. @Bolle whatcha think?

 

I'll pipe down now. :mellow:

Discussed this clocking "suspicion" with Bolle already (We're quite busy behind the scenes ;-)).

 

I traced the CPUclk (SE/30: 15.6672MHz) coming from the PDS slot to both FPGAs 'TclkIn' pins. Also, the 040s 33.3Mhz clock is fed in there. So my initial (stupid) WAG was, that these two clock-domains used in the FPGA VHDL/Verilog might get into some troubles (Given the FPGAs have to do the dynamic bus-sizing translation between 030 and 040). This would lead to different clocking-ratios:

  • Mac IIci    ~x1,25
  • Mac IIsi    x1.6
  • SE/30       ~x2.10

Who knows how clever their state-machines were designed.... but then it stroke me: Dang! The II[c]x has the very same clocking and these were supported by direct-to-socket adapters. 

And if my eyes aren't betraying me, the clk-pin on @nickpunts adapter is going straight to A38 on the PDS slot. That said, Nick, it would be interesting to know where A3 (/BUSCLK) is connected to on your adapter...

 

Next up was the load being put on the clock-signal. I have the short version of @Bolles adapter, sitting on the NIC which also lives off the clock-signal, but "Designing Cards and Drivers..." has the answer:

  • SE/30 - Drive: 40 uA /0.4 mA, 30 pF
  • IIci - Drive: 10 uA/0,1mA, 15 pF

This means litte SE/30 has more ooomp to the CLK signal than his bigger cousin.

 

So my current "hot trace of the week(tm)" is timing - i.e comparing different runs with my logic analyzer etc. - also I think I won't get around building a 1:1 PDS-interposer to eavesdrop my IIci while smoozing with the Carrera. 

Share this post


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

Discussed this clocking "suspicion" with Bolle already (We're quite busy behind the scenes ;-)).

Figured he'd be in on this. [:)]

 

Quote

I traced the CPUclk (SE/30: 15.6672MHz) coming from the PDS slot to both FPGAs 'TclkIn' pins. Also, the 040s 33.3Mhz clock is fed in there. So my initial (stupid) WAG was, that these two clock-domains used in the FPGA VHDL/Verilog might get into some troubles (Given the FPGAs have to do the dynamic bus-sizing translation between 030 and 040). This would lead to different clocking-ratios:

  • Mac IIci    ~x1,25
  • Mac IIsi    x1.6
  • SE/30       ~x2.10

Like a question, a WAG is not stupid by definition. A WAG can be silly, misinformed, way out in left field or outlandishly out side the box  For a question, the stupid one goes unasked as WAG not floated. I think there's something about incandescent light bulb development loosely related to that. [;)]

 

Assuming the clock ratios of IIx and IIcx are identical to SE/30, it's the delay propagated in buffering the rest SE/30 PDS that got me going. That's straight from Bolle's comments about adding an additional layer of buffering to support a second passthru slot for third card on the very adapter you're using. I've been sitting on a WAG about inadequate bus driving being the culprit in the wonkiness of his SE/30 megastack. The Socketed board vs. the rest of his boards would be the reason for the other thread I started about this, but the wrong 040 board is in the title of that tangent, oh well.

 

Quote

Who knows how clever their state-machines were designed.... but then it stroke me: Dang! The II[c]x has the very same clocking and these were supported by direct-to-socket adapters. 

And if my eyes aren't betraying me, the clk-pin on @nickpunts adapter is going straight to A38 on the PDS slot. That said, Nick, it would be interesting to know where A3 (/BUSCLK) is connected to on your adapter...

 

Next up was the load being put on the clock-signal. I have the short version of @Bolles adapter, sitting on the NIC which also lives off the clock-signal, but "Designing Cards and Drivers..." has the answer:

  • SE/30 - Drive: 40 uA /0.4 mA, 30 pF
  • IIci - Drive: 10 uA/0,1mA, 15 pF

This means litte SE/30 has more ooomp to the CLK signal than his bigger cousin.

Makes sense, that oomph is there to drive an expansion bus spec limited to just two TTL inputs while the IIci Cache Slot was designed to support just one. The IIsi PDS would be the same spec, but for the clock ratio disparity.

 

Quote

So my current "hot trace of the week(tm)" is timing - i.e comparing different runs with my logic analyzer etc. - also I think I won't get around building a 1:1 PDS-interposer to eavesdrop my IIci while smoozing with the Carrera. 

In WAG mode, methinks the quality of your schmoozing time would increase dramatically by building an interposer. But  on built for the 030 socket interface and gated for three states: straight thru, 74F573 type and 74HC(T)573 type buffered latches or the equivalent of whatever buffer IC is used to drive the PDS of the SE/30. That would be the bottleneck for SE/30 adaptation the way I see it in this table:

 

IIci - are the Cache Slot signals buffered, don't think so IIRC? @ ~x1,25 multiplier = functional = Baseline design spec of Carrera 040 et al.

|

IIsi - PDS Bus signals (straight thru on Carrera specific IIsi adapter) buffered @ ~x?.?? multiplier = functional*****

|

SE/30 - PDS Bus signals buffered @ ~x2.10 multiplier = non-functional

|

II(c)x - direct socket connection signals straight thru @ ~x2.10 multiplier = functional, but suspected edge case for timing*****

 

 

***** if you build an interposer, some interesting tests become possible, but after doing a feasibility study:

 

carrera040_iisi_adapter_front.jpg

 

carrera040_iisi_adapter_back.jpg

 

Nope, no GAL on this version, nick. IIci adaptation is built into the Carrera's bits and interposing joe's adapter between II(c)x adapter and Carrera in a II(c)x would not cause loss of function under my premise.

 

 

IMG_6953.jpg

 

I suspect that interposing your PowerCache adapter with IIci conversion in that GAL would cause failure due to timing issues propagated in the GAL.

 

Outlandish WAG here is that the delays propagated by the GAL on Bolle's PowerCache adapter that you've been using on top of inherent buffering delay of the SE/30 PDS would be the root cause of your timing issues at the ~x2.10 multiplier.

 

Dunno what the CMOS logic I found in schematics of IIci and IIsi might do, but there has to be a very good reason for going to the trouble of using 74HC logic that's not TTL compatible in the designs. TTL compatible 74HCT (if available in that time frame?) would have been a seamless way to implement much faster, lower power consumption CMOS logic.

 

That's my WAG  .  .  .  and I'm still sticking to it. :blink:

 

Edited by Trash80toHP_Mini

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×