Announcement

Collapse

Forum Rules and Etiquette

Our mission ...

This forum is part of our mission to promote the preservation of vintage computers through education and outreach. (In real life we also run events and have a museum.) We encourage you to join us, participate, share your knowledge, and enjoy.

This forum has been around in this format for over 15 years. These rules and guidelines help us maintain a healthy and active community, and we moderate the forum to keep things on track. Please familiarize yourself with these rules and guidelines.


Rule 1: Remain civil and respectful

There are several hundred people who actively participate here. People come from all different backgrounds and will have different ways of seeing things. You will not agree with everything you read here. Back-and-forth discussions are fine but do not cross the line into rude or disrespectful behavior.

Conduct yourself as you would at any other place where people come together in person to discuss their hobby. If you wouldn't say something to somebody in person, then you probably should not be writing it here.

This should be obvious but, just in case: profanity, threats, slurs against any group (sexual, racial, gender, etc.) will not be tolerated.


Rule 2: Stay close to the original topic being discussed
  • If you are starting a new thread choose a reasonable sub-forum to start your thread. (If you choose incorrectly don't worry, we can fix that.)
  • If you are responding to a thread, stay on topic - the original poster was trying to achieve something. You can always start a new thread instead of potentially "hijacking" an existing thread.



Rule 3: Contribute something meaningful

To put things in engineering terms, we value a high signal to noise ratio. Coming here should not be a waste of time.
  • This is not a chat room. If you are taking less than 30 seconds to make a post then you are probably doing something wrong. A post should be on topic, clear, and contribute something meaningful to the discussion. If people read your posts and feel that their time as been wasted, they will stop reading your posts. Worse yet, they will stop visiting and we'll lose their experience and contributions.
  • Do not bump threads.
  • Do not "necro-post" unless you are following up to a specific person on a specific thread. And even then, that person may have moved on. Just start a new thread for your related topic.
  • Use the Private Message system for posts that are targeted at a specific person.


Rule 4: "PM Sent!" messages (or, how to use the Private Message system)

This forum has a private message feature that we want people to use for messages that are not of general interest to other members.

In short, if you are going to reply to a thread and that reply is targeted to a specific individual and not of interest to anybody else (either now or in the future) then send a private message instead.

Here are some obvious examples of when you should not reply to a thread and use the PM system instead:
  • "PM Sent!": Do not tell the rest of us that you sent a PM ... the forum software will tell the other person that they have a PM waiting.
  • "How much is shipping to ....": This is a very specific and directed question that is not of interest to anybody else.


Why do we have this policy? Sending a "PM Sent!" type message basically wastes everybody else's time by making them having to scroll past a post in a thread that looks to be updated, when the update is not meaningful. And the person you are sending the PM to will be notified by the forum software that they have a message waiting for them. Look up at the top near the right edge where it says 'Notifications' ... if you have a PM waiting, it will tell you there.

Rule 5: Copyright and other legal issues

We are here to discuss vintage computing, so discussing software, books, and other intellectual property that is on-topic is fine. We don't want people using these forums to discuss or enable copyright violations or other things that are against the law; whether you agree with the law or not is irrelevant. Do not use our resources for something that is legally or morally questionable.

Our discussions here generally fall under "fair use." Telling people how to pirate a software title is an example of something that is not allowable here.


Reporting problematic posts

If you see spam, a wildly off-topic post, or something abusive or illegal please report the thread by clicking on the "Report Post" icon. (It looks like an exclamation point in a triangle and it is available under every post.) This send a notification to all of the moderators, so somebody will see it and deal with it.

If you are unsure you may consider sending a private message to a moderator instead.


New user moderation

New users are directly moderated so that we can weed spammers out early. This means that for your first 10 posts you will have some delay before they are seen. We understand this can be disruptive to the flow of conversation and we try to keep up with our new user moderation duties to avoid undue inconvenience. Please do not make duplicate posts, extra posts to bump your post count, or ask the moderators to expedite this process; 10 moderated posts will go by quickly.

New users also have a smaller personal message inbox limit and are rate limited when sending PMs to other users.


Other suggestions
  • Use Google, books, or other definitive sources. There is a lot of information out there.
  • Don't make people guess at what you are trying to say; we are not mind readers. Be clear and concise.
  • Spelling and grammar are not rated, but they do make a post easier to read.
See more
See less

Trying to get a Cromemco 2-ZD / 4FDC talking

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Trying to get a Cromemco 2-ZD / 4FDC talking

    I am trying to bring a Cromemco 2-ZD system back to life. I have already safely brought up the power supply and everything checks out fine there. Reset circuit, clock signal all check out fine. Right now I just have installed the Cromemco ZPU, dynamic RAM, and 4FDC. The 4FDC houses the 2708 EPROM which has RDOS 1.1 on it. According to the manual, I should be able talk to it using a Terminal @ (up to) 9600 baud. The manual says I hit enter several times to calibrate the baud rate, and I should get an RDOS message back. I have tried all that, but I get nothing.

    First of all, does anyone have a schematic for the 4FDC? I can't find one anywhere. This board uses the TMS5501 I/O controller which I am unfamiliar with.

    On the 4FDC, I've hooked up my scope and traced the incoming serial signal from my terminal on PIN 2 of the DB25 connector. This goes to a 74LS241 - pin 17 / 2A4:
    20211006_213628.jpg
    The only signal I see come out the other side looks like this - on pin 2 / 1A1:
    20211006_213641.jpg

    FYI - this is a brand new 74LS241 chip. I'm a bit confused on what happens from here. I don't see the serial signal end up anywhere at the 5501.

    Anyone have some recommendations on how to get this thing talking?

    20211006_213619.jpg

    #2
    First things first.

    Can you let me know what switch/link configuration you have on all of the cards please?

    The 'default' should be:

    4FDC SWITCH BIT:
    1 - OFF
    2 - OFF
    3 - OFF
    4 - ON

    ZPU Switch should be set to power up at C000h.

    Note, however, that the base address of the 2708 EPROM on the 4FDC 'could' have been changed by track cutting and links around IC44. Unlikely, but a remote possibility.

    Dave
    Last edited by daver2; October 7, 2021, 02:35 AM.

    Comment


      #3
      Originally posted by daver2 View Post
      First things first.Can you let me know what switch/link configuration you have on all of the cards please?
      Good call, I double checked - my ZPU jump address is set correctly to C000H (Example 1 in the ZPU manual).

      On the 4FDC, all 4 switches were off. I swear I had checked all that but may have been bumped during cleaning. Either way, I turned it on and I still get no serial output from the monitor. Looks like switch 4 is related to initializing disks, which I'm not there yet so I guess it wouldn't matter anyways.

      Comment


        #4
        Yes, switch 4 prevents INITialising disks - so should be ON for the time being...

        I'll have a think later...

        Dave

        Comment


          #5
          Went through all the voltages at the chips, they all seem good (the TMS5501 gets +5, -5 and 12V). Checked all my serial settings, tried different baud rates... Still no response.

          Comment


            #6
            Can I suggest monitoring the Z80 pin 6 (clock) and pins 16 through to 28 to look for signs of activity and (if so) what.

            Let's see what the processor is up to shall we? Without a processor running - we are not going to get much.

            Do you have an oscilloscope?

            Dave

            Comment


              #7
              Originally posted by daver2 View Post
              Can I suggest monitoring the Z80 pin 6 (clock) and pins 16 through to 28 to look for signs of activity and (if so) what.

              Let's see what the processor is up to shall we? Without a processor running - we are not going to get much.

              Do you have an oscilloscope?

              Dave
              Sounds good - yes I do have a scope... So, pin 6 (clock) is giving me a good 2MHz signal.
              20211011_170830.jpg

              However, none of the other pins (16-2 seem to do anything at all. Pin 26 goes low when reset is held. I tested most of the other pins after reset as well..nothing.

              Should I test while trying to send serial data? Or does this mean the Z80 is bad, or perhaps it's just not seeing instructions from the ROM?
              Last edited by nullvalue; October 11, 2021, 02:25 PM.

              Comment


                #8
                So, the Z80 is sitting down and refusing to do anything. However, before we jump to conclusions and assume the Z80 is dead (which it probably isn't) we need to find out if the Z80 was doing something after reset - but then stopped/halted as a result of reading rubbish OR deliberately by the ROM executing a HALT instruction.

                Can you tell me whether the Z80 pin 18 is HIGH or LOW please. This is the /HALT pin. HIGH means the Z80 should be doing something. LOW means that the Z80 is halted.

                Next, we can use the power of your oscilloscope to see if the Z80 was trying to execute instructions just after a RESET, but then went into the weeds...

                How many channels do you have on your oscilloscope by the way? I will assume 2 channels.

                Connect the Z80 pin 26 (/RESET) up to channel 1 and use this channel as a trigger. Set channel 1 to trigger on a LOW to HIGH (rising edge) transition. This will start the oscilloscope tracing just after the reset has completed and the Z80 is ready to run.

                Connect the Z80 pin 18 (/HALT) up to channel 2. See how long it takes from the end of the /RESET to /HALT going low. I am assuming that the Z80 starts to execute instructions after the reset and then halts at some point. You may have to play around with the timebase and try a few resets to see what is going on.

                Connect the Z80 pin 27 (/M1) up to channel 2 (or another channel if you have one available). This pin should pulse low for every instruction that the Z80 executes.

                It will be good news if the Z80 starts to execute instructions (you see /M1 pulses) after a reset - and we can work from there moving forwards.

                I will take this fairly slowly so we can progress one step at a time. Forget the serial communications for now... What we want to see in the next step is whether the Z80 is trying to access the BOOT ROM following a reset.

                Dave

                Comment


                  #9
                  Ok, so pin 18 is HIGH (well, I measured it at 4.0V) - double checked +5 (pin 11) and it is getting a clean 5V supply.

                  Since pin 18 isn't LOW, I'm not sure if your 2-channel /HALT tests makes much sense, but I did it anyways and yeah - I see the RESET signal go from LOW to HIGH, but pin 18 does nothing.. stays at 4V the whole time. Played with the timing, too - from 50ms to 5ns, nothing.
                  20211012_201855.jpg

                  Connecting to pin 27 looks like there is a lot of ongoing activity/pulses so that sounds like a good sign..
                  20211012_202248.jpg

                  Comment


                    #10
                    Interesting...

                    The response on pin 27 (/M1) appears different to what you reported back in post #7. So, does this mean that sometimes when you start the machine that it HALT and other times not I wonder?

                    If pin 27 (/M1) is pulsing like it is - then the Z80 is actually executing instructions this time.

                    Can I suggest repeating the pin check from post #7 a few times (each following a power-up) to see if the problem is the power-on reset or not - or whether sometimes the Z80 starts and other times not.

                    Anyhow, when the Z80 starts (pulsing observed on pin 27 /M1) then you need to check the EPROM on the 4FDC card. I am assuming this is a 2708 EPROM? Please check and report back. If it is a 2708 EPROM, pin 20 (/CS) should be observed to be pulsing LOW as the Z80 accesses it.

                    Dave
                    Last edited by daver2; October 13, 2021, 03:59 AM.

                    Comment


                      #11
                      I reran the reset test on pin 27 - I get pulses after initial power-on but noticed after a reset, I get nothing - it stays LOW. This must be why I missed it the first time.

                      Here are what the pins are doing:

                      16 LOW
                      17 HIGH
                      18 HIGH
                      19 PULSING
                      20 HIGH
                      21 PULSING
                      22 HIGH
                      23 HIGH
                      24 PULSING
                      25 HIGH
                      26 HIGH
                      27 PULSING
                      28 PULSING

                      It seems like after a reset, all the pins that were pulsing go/stay LOW.

                      Yes the 4FDC does have a 2708 EPROM on it. It is stamped RDOS 1.1:

                      20211013_204143.jpg

                      I checked pin 20 at it is indeed pulsing. Here's what the scope looks like - CH1 is the 2708 pin 20, CH2 is the Z80 pin 27.

                      However there seems to be some real flakiness with the 2708 pin 20. Sometimes after power on I don't get anything. Others the pulses don't line up to the same rhythm as I saw previously.

                      Here was one time I measured it.
                      20211013_203928.jpg

                      After powering off and coming back I was seeing this:
                      20211013_210119.jpg
                      Same reading, slower timing:
                      20211013_210140.jpg

                      And now I have the Z80 pin 27 pulsing but am getting nothing on the 2708 pin 20.. it just goes/stays HIGH.

                      Comment


                        #12
                        The table that you posted first looks sensible (with one exception) that is pin 16 /INT being LOW.

                        /MREQ (pin 19) and /RD (pin 21) pulsing indicates the Z80 CPU reading from memory.

                        /WAIT (pin 24) pulsing probably indicates that the (EP)ROM is a bit slow and (as a result) the 4FDC circuity is putting the Z80 into a wait state (or two, three or more cycles). This is expected behaviour.

                        /M1 (pin 27) pulsing indicates that the Z80 is fetching and executing instructions.

                        /REFSH ( pin 28 ) pulsing indicates that the Z80 is performing a DRAM refresh cycle.

                        /INT (pin 16) being LOW indicates a permanent 'stuck' interrupt. This may be because the Z80 is not reading back (and therefore executing) the 'correct' instruction from the (EP)ROM.

                        Let me think a bit...

                        Dave

                        Comment


                          #13
                          I am in the processing of building an EPROM reader/programmer which is capable of working with the 2708's. Once I get that tested, I'll read out the EPROM. I found the RDOS hex here: https://www.autometer.de/unix4fun/z80pack/ftp/cromemco/ - wondering if you know of any other resource for ROM images for this machine?

                          Comment


                            #14
                            Hi Nullvalue,

                            >> .... wondering if you know of any other resource for ROM images for this machine?

                            Take a look at http://www.hanscom.us, and dig down into the "CBIOS Boneyard". There are quite a few goodies there, BUT any ROM that I've ever seen from Cromemco gear *IS'NT* 2708. I ought to add that I've never worked with a 4FDC. I use (thankfully) 16FDCs and 32FDCs.

                            Hope you can find something useful on my site.

                            Roger

                            Comment


                              #15
                              Thanks, I'll take a look. See the pic I posted in #11 - is that not a 2708 ROM? Are the 4FDC's really as bad as I've seen them made out to be?

                              Comment

                              Working...
                              X