IBM 5160 oddball fault
Ernest G. Allen
eallen at owt.com
Thu Apr 23 20:56:45 CDT 2015
On Thu, 23 Apr 2015, Jules Richardson wrote:
> Date: Thu, 23 Apr 2015 14:55:56
> From: Jules Richardson <jules.richardson99 at gmail.com>
> Reply-To: "General Discussion: On-Topic and Off-Topic Posts"
> <cctalk at classiccmp.org>
> To: General at classiccmp.org,
> "Discussion at classiccmp.org": On-Topic and Off-Topic Posts
> <cctalk at classiccmp.org> ;
> Subject: Re: IBM 5160 oddball fault
> On 04/23/2015 11:20 AM, tony duell wrote:
> > >
> > > Does anyone have any ideas what might be going on? It doesn't quite seem
> > > like a memory fault - possibly some sort of address decoding error? It's
> > > almost like the video board is pulling display data from the wrong part of
> > > memory, but I'm not sure that makes sense given that the board has its own
> > > local RAM rather than relying on RAM on the system board.
> > >
> > To me this sounds like an address line fault on the expansion bus. The CPU
> > thinks
> > it's writing to a particular location in the CGA card's memory, but due to
> > the fault it
> > actually accesses another location.
> Yes, could be. CGA base address is B8000h, I think, and I'm seeing display
> text offset by 800h (2KB - 1024 characters plus 1024 attribute bytes).
> Assuming that the BIOS is responsible for clearing video memory (rather than
> it being a function of the CGA card itself), then my on-screen garbage could
> be down to whatever happens to be in the first 2KB of the CGA card's memory at
> power-on, and address bit A11 is jammed high on the expansion bus.
> What's puzzling if that's the case is why the ROM BASIC 'function key' strip
> appears normally at the bottom of the screen - I'd expect it to be stuck in a
> 'non visible' portion of the CGA card's memory.
> > Have you tried the CGA card in different slots? Just in case it's a bad
> > contact
> > on the edge connector.
> Yes - the same thought had occurred to me.
> I'll take a look at the address lines (albeit just with a DMM, but that will
> hopefully be enough if it's a stuck bit)
Since it comes up in BASIC, have you tried BASIC's POKE command to
stuff some values into the first 1,024 characters (2048 bytes)?
I dug up the old IBM PC BASIC manuals and refreshed my memory, and
took a few minutes to write a BASIC program that will POKE values
into the first 1,024 characters. You can use it to test if the
CGA memory is OK when accessed directly. If the memory access is
OK it should place 1,024 capital "A" letters that fill in the
first 12 lines and 64 characters of the 13th line.
100 ' A test of the first 1,024 characters of CGA character memeory.
120 ' Set to 80x25 text mode, with color, page 0 active, page 0 viewed.
140 SCREEN 0, 1, 0, 0
150 WIDTH 80
170 ' Set segment to CGA memory.
190 DEF SEG = &HB800
210 ' Poke bright white on black into CGA page 0.
230 FOR I = 1 TO 2047 STEP 2
240 POKE I, 15 ' Poke 7 instead of 15 for normal white.
250 NEXT I
270 ' Poke capital A into CGA page 0.
290 FOR I = 0 TO 2046 STEP 2
300 POKE I, 65
310 NEXT I
330 ' Reset segment to BASIC's data segment.
350 DEF SEG
More information about the cctalk