[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [N8VEM-S100:4271] RE: VGA chipset on S-100 bus

Hi Charlie, Andrew has passed on to me your e-mail below.  
I will actually respond in  a general way because over the months a number
of people have asked about this effort to build a XVGA (not VGA) video board
for the S100 bus.   

Clearly VGA chips are outside the realm of a Z80/64K ram etc but the final
vision I have is a XVGA driven S100 system driven by an 80386 or 80486 using
Lynix  etc.  This is a very long story, and way too much for me to detail
here.  Suffice to say we are now on our 7th  prototype board!

The old saying "when you are up to your neck in alligators, it's hard to
remember the original idea was to drain the swamp!

Ok let me get started:-
Way back in early 2011, I looked at  a number of the popular and common "all
in one" VGA chips.    Some of the later ones like the Cirrus CL-GD5420
literally had only a half dozen buffers interfacing with the PC ISA bus.
The two busses are actually quite similar, both being Intel CPU's based.  I
figured how hard could it be!  Answer, very hard!

There were a number of early problems.  First source code for the VGA bios
(which resides at C000:0) is not available.  It's a black box.  I had to
sidetrack and make an ISA bus equivalent board try various bioses on it
(booting from a CGA board)  to show that in fact the ROM I had was viable
and would initialize the VGA chip at any 1K boundary.  

I found that simply plunking the chip and ROM into our 8086 driven systems
did not work.  Long story short,  the initialization process in the ROM
sends out back to back bytes to the chip (so that it is I assume compatible
with the original 8 bit bus PC's).   All our 8086 family of boards always
send 16 bit data as 16 bits. The Cirrus chip does not lower the ISA lines
IOCS16* or MCS16* sometimes -- particularly when initializing.  

The PC-AT has motherboard circuitry to send the 16 bit  data back to back as
8+8.   I know of only one S100 CPU board,  The TechMar  8086 board that had
onboard circuitry to do this.   Grossly simplifying it latched the lower 8
bits, increased the address by one and sent both data sets with one RD/WR
strobe.     As it turns out the PC-AT is more elaborate it sends out a
distinct and separate Rd/Wr strobe of each 8 bits of data.

This enormously complicates things for high speed S100 bus access.    It
required a 74LS164 to step the various synthesized in time signals (all the
time holding the CPU in a wait state).    At first I did all this with TTL
gates, then I realized GAL's allow me much more flexibility trial/and error.

OK the net result of all the above was I still could not get a reliable
video screen. Odd characters would randomly appear -- RAM access errors.

So I dropped down to trying all of the above using our 8088 CPU board --
which actually sends 16 bits back to back as 8+8.  Again it did not work
reliably. Unknown was the fact that the 8088 does not have a few 80286
op-codes, but even the NEC chip failed.
I then switched over to Sergey's XT 8 bit video board. That definitely works
with only an 8 bit bus and uses the Trident TVGA9000 chip.  Still could not
get solid video. Frustrating is the fact that the ROM is visible on these
boards, an OK but you cannot checkout the RAM.

At this time I lowered my sights and started with the old PC CGA board in
the ISA/S100 bus converter.   Also used the EGA board.
With those two boards I can "most of the time" get a stable display using
the 8088.  

Very long story short, it's apparent that the timing specifications for
these VGA chips is very tight.  I still have not given up,  but a solution
will require a painstaking comparison of most ISA signals in a PC
motherboard and the corresponding ones in the S100 bus.

Long term the idea was to get this converter board working and then strip
down the interface so the video chips are talking directly to the S100 bus.

The recent "discovery" of GAL's has changed much of the above.  I took one
try, 8 bit CGA's look good but I have had to do yet another prototype which
Andrew is now laying out.

Could all the above be done differently. Absolutely!   It's crying out for a
CPLD approach, but that is way above my capabilities.  

I was even thinking if we could use some modern very fast 32 bit CPU to
interface between the two buses.  However I think even today they would not
be able to keep up to say a 10MHz Phi on the S100 bus.

I'm attaching the core circuits so you get a flavor of things.

Comments welcome

From: n8vem...@googlegroups.com [mailto:n8vem...@googlegroups.com] 
Sent: Wednesday, June 18, 2014 3:46 PM
To: 'Charlie Carothers'
Cc: n8vem...@googlegroups.com; mon...@vitasoft.org
Subject: [N8VEM-S100:4271] RE: VGA chipset on S-100 bus

John Monahan is leading the effort for an S-100 SVGA board.  Hopefully he
can contact you for any help on the project.

Thanks and have a nice day!

Andrew Lynch

From: Charlie Carothers [mailto:csqu...@tx.rr.com] 
Sent: Saturday, June 14, 2014 12:46 PM
To: Andrew Lynch
Subject: VGA chipset on S-100 bus

Hi Andrew,

I know it has been a long while - I'm *really* behind reading the classic
computer emails - but I noticed just yesterday that on 8/8/13 you said:
3.       S-100 TestIO V2 - An experimental S-100 to ISA bridge. The purpose
of this board is to diagnose why the VGA chipset works on the ISA bus but
not on the S-100 bus.  May evolve into a general purpose bridge board
sometime in the future but is just for internal build and test at the

I was just wondering which VGA chipset you were using, and whether you got
it working?  

Quite a few years ago we worked through the connection of a Chips and
Technology 65545 video controller to an 80386EX at work.  It was not a lot
of fun!  Our first interface was to 320x240 quarter VGA color and mono
displays.  Later, we also supported a full 640x480 color display.  If you've
ever used an ATM with the "Tidel" logo you've seen the result (except for
the very early ones which used a plasma display).  Our EE (Jim) said he was
told that interfacing the 65545 to the memory and address bus of the 386 was
impossible, but we did it anyway.  He did use a CPLD to help with some of
the interface.  The only thing that never quite worked correctly was reading
the video RAM from the 386.  I did a little diagnostic that read it and
wrote it back to the same locations.  When we ran that, a nice colored
checkerboard would slowly turn to mush.  Fortunately that was not a system
requirement, so it did not really matter.  Jim and I talked about it some,
and he always thought he 
could fix it with some CPLD changes but there was never any time available
to do that since it was not critical.

We were very small fish in C&T's water, so they were not a lot of help, like
zero.  I remember the final connection that made it work was a pin that had
to be grounded which was only explained in the data sheet for a predecessor

I have no idea if you're still working on this, or if you're still having
any problems with it.  If you are, and there is anything I could help you
with I'd be happy to try.  I no longer have an operational board and display
from that project, but I do have the schematics and the software source code
we used.  I might have a copy of the CPLD code, but I'm not sure about that.

Charlie C.
In God We Trust!!!  (and He is in control!)
You received this message because you are subscribed to the Google Groups
"N8VEM-S100" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to n8vem-s100+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Attachment: ISA with Logic Probe.jpg
Description: JPEG image

Attachment: V5 Corrections1.jpg
Description: JPEG image

Attachment: V5 Corrections2.jpg
Description: JPEG image

Attachment: V5 Corrections3.jpg
Description: JPEG image

Attachment: V5 Corrections4.jpg
Description: JPEG image

Attachment: V5 Corrections5.jpg
Description: JPEG image

Attachment: V5 Corrections6.jpg
Description: JPEG image

Attachment: V5 Corrections7.jpg
Description: JPEG image