Re: Commodore 8296GD

From: Rhialto <rhialto_at_falu.nl>
Date: Thu, 18 Oct 2012 20:59:14 +0200
Message-ID: <20121018185914.GA6040@falu.nl>
On Sat 13 Oct 2012 at 13:06:03 +0200, Micha? Pleban wrote:
> OK, this is actually not true. I tried initializing the CRTC in a BASIC
> program which gave me strange results. But when we perform directly a
> SYS 35859 (which changes the five CRTC registers I wrote about before),
> the graphics display is correctly turned on. So the suspicion was
> correct - writing #$02 into CRTC register #$0C should turn on the
> graphics display.

I've done an implementation in VICE based on what we know so far.
Further hardware analysis will no doubt refine it. See below for a patch
that applies to a current VICE from the svn repository. I can't check
anything in yet, because VICE is in feature freeze due to a release,
Real Soon Now(tm).

I was wondering about the weird choice to enable the graphics by setting
the screen start address offset to $0200 (the register that is written
to contains the high byte). This doesn't even bring the start value
outside the normal range of screen addresses, so hi-res detection can't
work by observing the MA lines and triggering on an extra-high value.
It could only work by snooping writes to E880 and E881 both.

It occurred to me that the value ($02), as written, differs from the
normal value ($10) in another bit: the invert bit. In a 8296 this is
apparently not wired up like that; Just now looking at the schematics of
the board, on sheet 4 left-top I see that MA12 goes to a jumper (number
is unreadable) which is normally not connected, before going on into RAM
addressing. Another jumper (JU8, it seems) pulls the line to ground.
These presumably being the jumpers that go to the HRE board...

So, in fact, it seems more likely that the $10 bit controls the hi-res.
Why the screen start address is increased, I'm not sure yet, since in my
software version I need to subtract that offset again to ease my
calculations.

> I think these are enough information to re-implement the HRE in VICE -
> as it turns out, the board usage is pretty straightforward. I will try
> to post ROMs on Zimmers later today.

Thanks for sending me the ROMs directly, since they were not moved out
of the incoming directory yet. For people without the ROMs, here is a
little basic program that can test the HRE, without even switching out
of 80 column mode. This gives a slightly strange memory mapping but it
shouln't really hinder using the graphics.

 10 c = 59520 : rem crtc address
 20 poke c, 12: poke c+1, 2
 100 a=40960
 101 fori = a to a+2048: poke i,255: next
 110 for i = 0 to 512
 120 poke a+i,i and 255: poke a+i+1024,i and 255
 130 next
 300 for i = 0 to 9000: next
 310 poke c, 12: poke c+1, 16
ready.

(you can cut & paste that into VICE these days!)

And here is the diff:

http://www.falu.nl/~rhialto/vice-hre.diff
Run "xpet -model 8296 -pethre" and maybe with "-rom9 324992-02.bin -romA
324993-02.bin"

Switching on the hires prints some diagnostics, but just a limited
number of them. Not sure yet if I should worry about that.

-Olaf.
-- 
___ Olaf 'Rhialto' Seibert  -- There's no point being grown-up if you 
\X/ rhialto/at/xs4all.nl    -- can't be childish sometimes. -The 4th Doctor

       Message was sent through the cbm-hackers mailing list
Received on 2012-10-18 19:00:40

Archive generated by hypermail 2.2.0.