Re: Commodore 8296GD

From: Rhialto <rhialto_at_falu.nl>
Date: Mon, 1 Oct 2012 20:07:54 +0200
Message-ID: <20121001180754.GA9660@falu.nl>
On Mon 01 Oct 2012 at 17:44:03 +0200, Micha? Pleban wrote:
> Sure, no problem, I am slow nowadays myself with all the company stuff
> on my head...

I double-checked in the "8296 Addendum" and it is actually a line called
/RAM_ON which can be connected to the userport, selectable by a jumper.

There are also 2 more jumpers for /RAMSEL_9 and /RAMSEL_A.

If you close those, you can programmatically read all of the "missing"
32 KB of RAM.  It may well be that the installation instructions of the
card include a step to close these jumpers.

For writing, there is a write-through the ROMs to RAM - except in the
I/O area. If it weren't for this, you could write a hi-res picture
without these tricks.

For reference, see
http://www.zimmers.net/anonftp/pub/cbm/pet/manuals/8296supplement/8296supplement.html
pages 4 and 5:

2.3.	Modifications to the main memory system

By contrast with the CBM 8032, each address in the 64 k main
memory is covered by RAM. A write command into any address (apart
from I/O) causes the corresponding RAM address to be written at,
and a read command reads from RAM between $0000 and $8FFF; above
$9000 from the empty [EP]ROM sockets, from the ROM or from the I/O
devices.

RAM			$0000 - $FFFF
Empty socket		$9000 - $AFFF
ROM			$B000 - $FFFF. except $E8XX
I/O			$E800 - $E8FF

The memory system for CPU read accesses can be modified by means of
the signals /RAM SEL 9, /RAM SEL A, and /RAM ON (J4, Pins 12, 13, 14)
in accordance with the following table:


[The first line represents the normal config.  In my machine I have
jumpered J4 (the expansion bus) pins 12 and 13 to ground which gives me
8K of additional RAM which is not cleared on reset. Ground pins are
available in the adjecent row.]


[/NO ROM = 1; see page 12 for more cases]
+-----+--------+------------+-------------------------------------------------+
|     |Control |            |                                                 |
|     |Register|            |      main memory $8000 - $FFFF        [UB1-UB8] |
|     |        |            |      [$0000 - $7FFF is always RAM from UB1-UB8] |
|     |$FFF0   |            |                                                 |
+-----+--------+------------+-------------------------------------------------+
|     |    I/O |___ ___ ___ |              E000                               |
| ___ |    peek|RAM RAM RAM | E800  F000  -E7FF  B000  A000  9000  8000       |
| NO_ |    thr.|___ ___ ___ |              E900                               |
| ROM |CR7 CR6 |ON  S.9 S.A |-E8FF -FFFF  -EFFF -DFFF -AFFF -9FFF -8FFF       |
+-----+--------+------------+-------------------------------------------------+
|     |        |            |                                                 |
|  1  | 0   X  | 1   1   1  | I/O  Kernal Editor BASIC EPROM EPROM SCREEN     |
|     |        |            |                                                 |
|  1  | 0   X  | 1   1   0  | I/O  Kernal Editor BASIC  RAM  EPROM SCREEN     |
|     |        |            |                               +-----+           |
|  1  | 0   X  | 1   0   1  | I/O  Kernal Editor BASIC EPROM  RAM  SCREEN     |
|     |        |            |                         +-----+                 |
|  1  | 0   X  | 1   0   0  | I/O  Kernal Editor BASIC  RAM   RAM  SCREEN     |
|     |        |            |                   +-----+                       |
|  1  | 0   X  | 0   1   1  | I/O  Kernal Editor  RAM   RAM   RAM  SCREEN     |
|     |        |            |            +------+                             |
|  1  | 0   X  | 0   0   1  | I/O  Kernal  RAM    RAM   RAM   RAM  SCREEN     |
|     |        |            |     +------+                                    |
|  1  | 0   1  | 0   X   0  | I/O   RAM    RAM    RAM   RAM   RAM  SCREEN     |
|     |        |            |+----+                                           |
|  1  | 0   0  | 0   X   0  | RAM   RAM    RAM    RAM   RAM   RAM  SCREEN     |
|     |        |            |                                                 |
+-----+--------+------------+-------------------------------------------------+
SCREEN: 2000 bytes for screen memory, and 2096 bytes of available RAM.



  				- 4 -


2.4.	User Jumper

These three signals can be either fixed or programmable via
user jumpers. Bits 0, 1 and 2 are used for control under program
control.

[In my machine these jumpers are not true jumpers.  You must solder two
very tiny locations on the motherboard together to close the jumpers.
Also these locations are rather far apart in the midst of various other
tiny traces. I opted to use J4 instead which has JU1 and JU2 effectively
accessible.]

Jumper      Description of function

            _________
 JU1        RAM SEL A = LOW
            _________
 JU2        RAM SEL 9 = LOW
            _________
 JU3        RAM SEL A to Port A0
            _________
 JU4        RAM SEL 9 to Port A1
            ______
 JU5        RAM ON    to Port A2


To use the user jumpers JU3 to JU5, Pins 0, 1 and 2 of the user
port must be programmed to output.

DR = 59459 ($E843)
DA = 59471 ($E84F)

POKE DR, PEEK (DR) OR 7

The desired combination of bits (0 ... 7) can then be poked into
the port register DA.

N.B. When using JU3, JU4 and JU5, make sure that the user port is
     not written at accidentally. This can happen for instance in
     a number of text processing programs, which emulate a
     Centronics interface via the user port.

                ______
     The signal RAM ON must be high at the start, as it is not
     otherwise possible to complete the POWER ON routine in the ROM.

				- 5 -


-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-01 19:00:11

Archive generated by hypermail 2.2.0.