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

Ruud's diagnostic ROM for IBM PC, XT and compatibles

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

    Ruud's diagnostic ROM for IBM PC, XT and compatibles

    Hallo allemaal,

    As promised, here is my diagnostics ROM for the IBM-PC, XT or compatibles. You can download the binary and the source at http://www.baltissen.org/zip/diagrom.zip.

    First a some what strange remark: it hasn't been tested on a real PC yet. So fat I tested it by using the PCEM-emulator. Why? Quite simple: I don't have to program a EEPROM for every change. A little BAT file takes care of assembling the source, calculating and inserting the checksum, and copying the result to the correct directory within PCem. After that it is just clicking a little button on the screen and I can see the result. And in the mean time I can keep sitting in my favourite chair

    But I found out that using PCem didn't go without flaws. I found out that PCem contains at least two bugs:
    - It doesn't handle the 8253 timers correctly. Landmark reports a FAILED for each timer. I never used Landmark in a real PC but I can safely assume that some of you readers must have used it and didn't encounter any problems with good timer. I reported the bug and the only comment was: you are not allowed to point to illegal downloads. OK Modem 7, you are warned Strange thing: not one remark about at least checking it.
    Also strange: my ROM only has an error with timer two. Still have to look how Landmark tests the timers and why the difference causes errors for the the other two timers as well.
    - The output of the 74LS322 keyboard buffer does not behave as it should. It outputs $00 instead of $FF when disabled. I reported that as well but I didn't even get a reply.

    The two bugs had consequences for my ROM.
    - Because it takes "quite some" time to find out that timer 2 is not working, I actually test timer 0 when the ROM thinks it is testing timer 0.
    - I found a way to distinguish between the PC and XT but that doesn't work in PCem now due to that bug. Knowing I'm testing a XT compatible, I forced the ROM to handle the dip switch settings of a XT for the moment.

    If you run the ROM, you will see that it is very fast compared to the Landmark ROM. Because it is still in the testing phase, I'm more interested in direct results like "does it work at all?" and "how do the error counters and the loop counter behave". So I shortened some time consuming tests.

    The ZIP also contains the source code. It is made to compile under NASM. If you look for '###' you will find the parts where I skipped some loops, where I still have some doubts about the code or anything else that needs my attention.

    Have fun!

    Comments, ideas, suggestions and criticism is welcome of course
    With kind regards / met vriendelijke groet, Ruud Baltissen

    www.baltissen.org

    #2
    Cool stuff. I find an EPROM emulator is very useful for test and development on real hardware. I use a Moates Ostrich 2.0 which is geared towards automotive tuning but works with any binary image.

    Comment


      #3
      Not for an AT?

      Comment


        #4
        Originally posted by 2icebitn View Post
        Not for an AT?
        I will work on that as well but that will take some time. I first want to finish this one.
        With kind regards / met vriendelijke groet, Ruud Baltissen

        www.baltissen.org

        Comment


          #5
          Danke shoen. Did I spell that right?

          Comment


            #6
            Originally posted by 2icebitn View Post
            Danke shoen. Did I spell that right?
            You spelled it right in German but Ruud is Dutch or at least he lives in Holland.
            PM me if you're looking for 3½" or 5¼" floppy disks. EMail “ ” For everything else, Take Another Step

            Comment


              #7
              Can the diagnostic run with no RAM?
              Reach me: vcfblackhole _at_ protonmail dot com.

              Comment


                #8
                Originally posted by 2icebitn View Post
                Danke shoen. Did I spell that right?
                No, you didn't. It should have been "Danke schön". But being Dutch and not German, I would prefer "Dank je wel".
                With kind regards / met vriendelijke groet, Ruud Baltissen

                www.baltissen.org

                Comment


                  #9
                  Originally posted by Chuck(G) View Post
                  Can the diagnostic run with no RAM?
                  No, it cannot. The idea behind it is simple: I'm interested in repairing broken motherboard. So I'm not interested if there is or isn't a 8087 or a BASIC ROM present if the RAM does not work. If I have no RAM, I cannot use them anyway. Once I have working RAM, I want to check for other things.
                  Having RAM also means I can use subroutines in a natural way and use the stack as temporary storage.

                  For the same reason I stop the test after detecting a faulty CPU: why should I continue the test? Every other error found now could be due to a CPU executing the instructions in the wrong way. The same with DMA: no DMA means no refresh, means no reliable RAM. Fix the DMA first, then we continue.

                  I could change the program so it does not rely on RAM but that would mean I can forget, for example, about subroutines called by other subroutines and implementing it is a lot of extra work. But that's why I gave you the source code: if you feel the need to make it run without using RAM, be my guest
                  With kind regards / met vriendelijke groet, Ruud Baltissen

                  www.baltissen.org

                  Comment


                    #10
                    Originally posted by Ruud View Post
                    No, you didn't. It should have been "Danke schön". But being Dutch and not German, I would prefer "Dank je wel".
                    Really? Be sure and tell the other individual who actually thinks an adult doesn't know there's a difference between Dutch and German. And it's not like we actually use foreign language phrases here in the US. Rather the assumption is I believe everyone in northern Europe speaks German. Achtung baby.

                    Comment


                      #11
                      Originally posted by 2icebitn View Post
                      Rather the assumption is I believe everyone in northern Europe speaks German.
                      If you start speaking German in France, there are regions where people will turn around and ignore you completely. Yes, we are more than seventy years after the war but people still remember. Most Dutch will understand it, but speaking it? Hardly.
                      The Dutch Commodore User Group is visited regularly by Germans. Except me and one other guy, the rest of the club speaks English with them.
                      With kind regards / met vriendelijke groet, Ruud Baltissen

                      www.baltissen.org

                      Comment


                        #12
                        Originally posted by Ruud View Post
                        Having RAM also means I can use subroutines in a natural way and use the stack as temporary storage.
                        I just had a look at a screenshot of Landmark ROM for the AT and noticed, see the comment at the right, that it stops testing the rest of board when there is no RAM present. It seems the programmers found out as well that it simplifies programming when RAM is around
                        With kind regards / met vriendelijke groet, Ruud Baltissen

                        www.baltissen.org

                        Comment


                          #13
                          Hallo Ruud,

                          vielen Dank für das Programm! I have just tested in a an non-working XT-clone baord I had around.

                          Supersoft:
                          https://imgur.com/a/6FeLWIk
                          Your ROM:
                          https://imgur.com/gmmMtAR

                          With your ROM, scrren is refreshing very fast (think its starting from the beginning again at the error) so its hard to read anything. Think I dont have to explain, but the information Supersoft gives me seems to be more accurate.

                          Keep up the good work, but I think it still needs some improvement to keep up with Supersoft.

                          Comment


                            #14
                            Here is a screenshot of Ruud's Diagnostic ROM working on 5150 PC hardware. This is a stock motherboard with MDA display adapter. I doubled the file using a Hex Editor to 16K, and burnt it to a 27128 EPROM and installed it using a ROM adapter (The one I offer for the PC-Retro on the MTM website). I especially appreciate that you have included the source code for this program! Michael

                            rudd_1.jpg

                            ruud_2.jpg

                            Comment


                              #15
                              OK that will not do. I had fully expected the results to be in German

                              Comment

                              Working...
                              X