Image Map Image Map
Page 1 of 2 12 LastLast
Results 1 to 10 of 16

Thread: IBM EGA Card Clock

  1. #1

    Default IBM EGA Card Clock

    Hi All,

    I bought an IBM EGA card advertised as working, but unfortunately it does not. The screen does not display properly, with the correct DIP switches and EGA monitor. This monitor and computer works correctly on an EGA Genoa card.

    I measured the vsync and hsync pins on the db9 and found 26.5 hz for vsync and 9.6 khz for hsync for the IBM card. Compared to the Genoa card, it outputs 59.6 hz and 21.8 khz.

    The crystal on the IBM card is outputting a 16.6 MHz. So I narrowed things down. The sequencer chip U33 receives 16.6Mhz on pin 20 CLKIN. The sequencer outputs 8.1Mhz on pin 21 DT and 9.7 khz on pin 6 CCLK. I don't know enough of the Genoa to compare, so can someone to check the for the correct frequencies on a working IBM EGA card? I didn't bother tracing the source for vsync, but I think it's clear there is something wrong with either U33 or U32 the CTRC controller.

    Can something be incorrectly causing a clock dividing?
    Last edited by the3dfxdude; September 11th, 2020 at 09:04 AM.

  2. #2
    Join Date
    May 2006
    Location
    Melbourne, Australia
    Posts
    6,833

    Default

    What I measured (computer booted to DOS) on my IBM EGA card, is shown at [here].

  3. #3

    Default

    Ah thanks for also trying with and without the ROM BIOS. I was wondering if that had a role to play, but since the computer was posting successfully, I thought the ROM was good. I don't know about the IBM PC BIOS, but does it run a checksum on the option ROMs installed?

    I could install a CGA card as primary to get a display, and write or run a program that computes a checksum of the EGA BIOS? Can you recommend a utility?

  4. #4
    Join Date
    May 2006
    Location
    Melbourne, Australia
    Posts
    6,833

    Default

    Quote Originally Posted by the3dfxdude View Post
    Ah thanks for also trying with and without the ROM BIOS. I was wondering if that had a role to play, but since the computer was posting successfully, I thought the ROM was good. I don't know about the IBM PC BIOS, but does it run a checksum on the option ROMs installed?

    I could install a CGA card as primary to get a display, and write or run a program that computes a checksum of the EGA BIOS? Can you recommend a utility?
    One way to see if the BIOS ROM on the IBM EGA card is being executed at power-on, is to simulate failure of one of the card's RAM chips. You will then hear '1 long beep then 3 short beeps', which the BIOS ROM on the IBM EGA card informing you that its self-test discovered faulty video RAM on itself. The way I simulate failure of one of the card's RAM chips, is to ground one of the chip's data pins.

  5. #5
    Join Date
    May 2006
    Location
    Melbourne, Australia
    Posts
    6,833

    Default

    Quote Originally Posted by the3dfxdude View Post
    I don't know about the IBM PC BIOS, but does it run a checksum on the option ROMs installed?
    The motherboard POST of the IBM PC will not execute the initialisation code in a BIOS expansion ROM unless the ROM's 8-bit checksum is as expected. The checksum is not always for the entire ROM. More information at [here].

    Quote Originally Posted by the3dfxdude View Post
    I could install a CGA card as primary to get a display, and write or run a program that computes a checksum of the EGA BIOS? Can you recommend a utility?
    The BIOS expansion ROM on the IBM EGA card is 16 KB sized and starts at address C0000. Therefore, the following DEBUG code will fetch the ROM's content and create a file from it. You can then use a modern hex editor tool to verify that the first two bytes are 55 and AA, determine the value of the 'ROM size' byte, then verify that the 8-bit checksum (based on the 'ROM size' byte) is 00.

    C:\> DEBUG

    -N MYC000.BIN (comment: resulting file will be named MYC000.BIN)

    -R BX (comment: set BX=0000H/CX=4000H as count of bytes to write, 00004000H = 16K)
    BX 0000
    :0000
    -R CX
    CX 0000
    :4000

    -M C000:0 4000 0100 (comment: copy 16K bytes from C000:0 to offset 0100 in local segment)

    -W 0100 (comment: write from offset 0100 in local segment)
    Writing 4000 bytes

    -Q

    C:\>



    Of course, with a simple checksum method, a worry is that multiple bits may have flipped in a way that does not affect the checksum. For your comparison purposes, if I use the aforementioned DEBUG code to create a file from the IBM BIOS expansion ROM (the ROM labeled with the IBM part number of 6277356) on my good IBM EGA card, the calculated MD5 of the file is: 528455ED0B701722C166C6536BA4FF46

    BTW. Be aware of the following if using an EPROM programmer. Even with a good BIOS ROM chip on an IBM EGA card, if you remove the BIOS ROM then place that in an EPROM programmer (selecting 27128 type), the ROM contents are not as expected; the bytes are in reverse order. It is because on the IBM EGA card, the address lines are inverted before they go to the ROM's IC socket.

  6. #6

    Default

    Quote Originally Posted by modem7 View Post
    One way to see if the BIOS ROM on the IBM EGA card is being executed at power-on, is to simulate failure of one of the card's RAM chips. You will then hear '1 long beep then 3 short beeps', which the BIOS ROM on the IBM EGA card informing you that its self-test discovered faulty video RAM on itself. The way I simulate failure of one of the card's RAM chips, is to ground one of the chip's data pins.
    Yes. When I short pins 1 & 2 on U2, I can make the POST fail with one long beep and three short.

    I went ahead to installing a CGA card as primary display. When I set the EGA card to monochrome, and flipped the switch, POST failed with one long beep and three short. The CGA display does not get initialized. When I remove the CGA card and switch the EGA card back to EGA or CGA, the machine posts, but of course no readable display. I believe the switch block is working correctly.

    So I dug out a hercules/mono card and the monitor, and set the EGA as a secondary CGA, and the machine posts, to where I can start using it with the EGA card in there. Something is wrong with the EGA card set as mono.

    I'll proceed with examining the ROM tomorrow. Thanks for the instructions.

  7. #7
    Join Date
    May 2006
    Location
    Melbourne, Australia
    Posts
    6,833

    Default

    Quote Originally Posted by the3dfxdude View Post
    I went ahead to installing a CGA card as primary display. When I set the EGA card to monochrome, and flipped the switch, POST failed with one long beep and three short. The CGA display does not get initialized.
    Note that when you 'set the EGA card to monochrome', the IBM EGA card did not become a monochrome card (i.e. from a hardware perspective, not a monochrome card).

    Out of curiosity, I replicated what you did on my IBM 5160. Nothing ever on the CGA monitor except for an underline cursor. The 5160 did boot (A: drive stepped, POST issued single beep, hear drive C: being booted from). No '1 long beep then 3 short beeps' though.

  8. #8

    Default

    MD5 of my ROM is the same as yours.

    I can read the switch block setting from RAM. I think the ROM will run, but I think the EGA card is not taking all the initialization settings.

    Is there an EGA diagnostics program out there? Actually, I am getting the the one long and three short beeps consistently now. So I think I'd like to try a memory test.

  9. #9

    Default

    Quote Originally Posted by modem7 View Post
    Note that when you 'set the EGA card to monochrome', the IBM EGA card did not become a monochrome card (i.e. from a hardware perspective, not a monochrome card).

    Out of curiosity, I replicated what you did on my IBM 5160. Nothing ever on the CGA monitor except for an underline cursor. The 5160 did boot (A: drive stepped, POST issued single beep, hear drive C: being booted from). No '1 long beep then 3 short beeps' though.
    Then how can an EGA co-exist with CGA? The manual does say to always set SW1 5=ON 6=ON when the EGA is installed, even as secondary. I think the EGA ROM is supposed to initialize the primary card.

  10. #10
    Join Date
    May 2006
    Location
    Melbourne, Australia
    Posts
    6,833

    Default

    Quote Originally Posted by the3dfxdude View Post
    Then how can an EGA co-exist with CGA?
    When I am answering posts, I am never sure what knowledge a poster has on the subject matter, and so I look for clues in what is written. For example, when someone writes, "When I set the EGA card to monochrome", then with nothing else to clue me in, I think, maybe the author thinks that the card becomes a monochrome card and is treated accordingly. If instead, "When I set the EGA card up for a monochrome monitor" was written, then I would think to myself that the author is aware of the distinction.

    My understanding is that what changes are:

    * Pin functionality on the 9-pin D connector
    * BIOS functionality

    Additional, in IBM's technical document is, "The address of the display buffer can be changed to remain compatible with other video cards and application software."

    But from what I read, the EGA card does not change itself to be register-level compatible with MDA or CGA. That is going to 'break' some software.

    Quote Originally Posted by the3dfxdude View Post
    The manual does say to always set SW1 5=ON 6=ON when the EGA is installed, even as secondary. I think the EGA ROM is supposed to initialize the primary card.
    Now I can see that you have been reading the manual. You didn't mention before that switches 5 and 6 were still on; "I went ahead to installing a CGA card as primary display." can imply to some that switches 5 and 6 were set to CGA. Misunderstanding can be a consequence of brevity.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •