On Wed, Feb 16, 2011 at 6:30 AM, David Tubbs <davet...@tiscali.co.uk> wrote:

> If it is present,
> Modified eprom board, just as easyly hold two full ROM & TK2 versions,
> Mainboard ROMs removed of course.
>

Unfortunately, the lines aren't brought through to the ROM port to select
chips outside of the 48-64K memory block, so OS chips can't be read through
the port. (strictly speaking, the $8000 upper ROM could be placed in the ROM
port and be readable, but that wouldn't be very useful.

All that can be done with the ROM port is individual 16K ROM images can be
placed there. There could be a choice of images switched in and out, but
that's about it.

They limited the internal $8000 ROM slot the same way - it only gets a CS
signal for that 16K block, so you can't address a full 32k EPROM unless you
attach the CS line from the ROM port to the upper ROM slot CS line.

For those to whom this is Greek: CS means Chip Select. Take memory for
example: there are 8 identical RAM chips, and each has access to the same
address line (which tell the chip what address you're looking for) and data
lines (where it puts the data for the address you asserted on the data
lines.) As every chip is connected to the same address and data bus, you
need a way to tell the chips "I'm talking to you" and so CHIP SELECT was
born.

So with 8 imaginary chips, and 128K of RAM, each chip stores 16k. You need
an "address decoder" which takes the relevent lines of the address bus and
creates an output to each chip as required. If the address bus on this
imaginary computer is 16 bits wide (A0 to A15) and this 128K sits at a block
from 0-128K (for example) then:

A0 to A7 get passed to each chip.
A8 thru A10 get passed to an address decoder
A11 thru A15 get passed to a chip which makes sure they're all 0. IF they
are all zero, and the address isn't over 128K, that chip tells the address
decoder "this is for you."

The address decoder now knows that 1. "This address is for you" and two, it
has three pins which it can now pas through a 3 to 8 line decoder:

input     output on 8 pins
000 = 00000001
001 = 00000010
010 = 00000100
011 = 00001000
100 = 00010000
101 = 00100000
110 = 01000000
111 = 10000000

So now the lines A8 through A10 work through the address decoder, permitted
by the logic from A11+, to select which memory chip is being addressed.

Obviously, this is a gross simplification of memory addressing, and the QL
does it in two banks, and uses 4-bit chips so 2 chips need selecting to make
the 8 bit wide data bus... But in principle, this is how it works, and this
decision tree happens for every single memory access.

Fun, huh? :)

Dave
_______________________________________________
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm

Reply via email to