skiselev / 8088_bios

BIOS for Intel 8088 based computers
GNU General Public License v3.0
513 stars 61 forks source link

CGA Cards works only after reset or second PowerOn in Micro8088 #73

Open explit7 opened 1 month ago

explit7 commented 1 month ago

Hello @skiselev @spark2k06 and other collegues! I have a strange issue with CGA Cards on Micro8088. Doesn't matter if it is a Cycle Logic CGA or Graphics Gremlin Card, it works only after second PowerOn cycle or reset.

If i switch Micro8088 for the first time - i have garbage on the screen (Cycle Logic CGA Card) or constant Graphics Gremlin Test Pattern (Graphics Gremlin 1) which stays static. The computer boots in the background, but the screen stays static.

GG_Pattern

Thats very strange, in another XT Mainboard (TripleD TD-20) both cards works without any issues. VGA Card works also without any problems in Micro8088.

The CGA Card occupies the next ISA Slot after Micro8088 Board, in another Slots it the same issue. Could it be timing issue, that the CGA Card need more time to initialize?

I have following cards in My Micro8088 System:

Any ideas, where this problem is coming from? @skiselev , @spark2k06 You have also the Graphics Gremlin Card. Do you have the same Problems? Thanks

Update: Here seems to be the same issue: https://www.andavno.com/?p=248

explit7 commented 1 month ago

The Problem still exist on my Micro8088 Setup. I tried another Mainboard (Juko ST) with GLaBIOS (Thanks @640-KB !) and there the same CGA-Cards works without any issues. For me it looks so, that the Micro8088 BIOS doesnt wait long enough to initialize the CGA-Card. Aftert i press Crtl + Alt + Del (Warm Boot) - the card work without any issues, because its already initialized by the System.

explit7 commented 1 month ago

I added the line: %define INIT_DELAY 700 ; Initial delay in miliseconds before BIOS starts, to allow time for some ISA cards to be initialized.

into the config. The initialization take now longer, but the Problem is still not solved. Here i need to say, that i am not a coder, nor i have such skills and understanding in Hardware and Assembler... So i am literally in the desert without water :)

But i am sure, you guys ( @skiselev @spark2k06 @640-KB and others ) could solve it easily, just adding some proper delay before CGA graphics is initialized....

explit7 commented 1 month ago

What i found out, that initialization of CGA Card is different than in @640-KB GLaBIOS. GLaBIOS on Micro8088 initialize the CGA card straight after PowerOn, on Micro8088 i see first the Graphics Gremlin Test Pattern, and in 1 cases of 10 it boots afterwards into BIOS. In 9 of 10 cases i hear the intel melody, GG test pattern stays static. After i press reset - it boots normal.