[comp.sys.atari.st] Writing to the cartridge port.

440488@UOTTAWA.BITNET (Doctor Who) (04/14/88)

  Recently I was browsing thu an ST magazine, Reset to be specific and I
noticed an ad for a product by Alpha Systems called Megadisk. It is one
megabyte of ram that plugs into the cartridge port.
  But according to the infamous Abacus book ST Internals, (p96) writing
to this address creates a bus error. They tried putting a ram disk in
the port but without sucess.

  How did Alpha get around this so that the Megadisk would work with
out creating bus errors?

                                            Doctor Who

440488@UOTTAWA.BITNET

'If Doctor Who #2 killed Doctor Who #4, would it be considered as suicide?'

hase@netmbx.UUCP (Hartmut Semken) (04/18/88)

In article <8804132155.AA23202@ucbvax.Berkeley.EDU> 440488@UOTTAWA.BITNET (Doctor Who) writes:
>  How did Alpha get around this so that the Megadisk would work with
>out creating bus errors?

It's easy: whenever you *read* the adress range from FC0000+ you
actually *write* an adress to the adress bus, right?
Now: read adress FC000+(A1) with (a1).b containig the data to be
written. A simple PAL can write the Data into RAM.

Works just fine as an I/O Port. I attached an IBM-PC hard disk
controller (OMTI) to this I/O and use the interface for EC-BUS card as
well.

hase
-- 
Hartmut Semken, Lupsteiner Weg 67, 1000 Berlin 37 (auf der Karte: links)
hase@netmbx.UUCP
I think, you may be right in what I think you're thinking. (Douglas Adams)

unpowell@csvax.liv.ac.uk (04/19/88)

In article <8804132155.AA23202@ucbvax.Berkeley.EDU>, 440488@UOTTAWA.BITNET (Doctor Who) writes:
> 
>   Recently I was browsing thu an ST magazine, Reset to be specific and I
> noticed an ad for a product by Alpha Systems called Megadisk. It is one
> megabyte of ram that plugs into the cartridge port.
>   But according to the infamous Abacus book ST Internals, (p96) writing
> to this address creates a bus error. They tried putting a ram disk in
> the port but without sucess.
> 
>   How did Alpha get around this so that the Megadisk would work with
> out creating bus errors?
> 
>                                             Doctor Who

	Who knows? One Meg seems a little optomistic as the ST only has
128K of address space available for the cartridge port. Where will this
extra memory go?

		Mark Powell

********************************************************************************

 "...there's no success   JANET unpowell@uk.ac.lis.csvax
  like failure and        UUCP  {backbone}!mcvax!ukc!mupsy!lis-cs!unpowell
  failure's no success    ARPA  unpowell%csvax.lis.ac.uk@nss.cs.ucl.ac.uk
  at all..." B.Dylan

********************************************************************************

wes@obie.UUCP (Barnacle Wes) (04/24/88)

In article <542@csvax.liv.ac.uk>, unpowell@csvax.liv.ac.uk writes:
> In article <8804132155.AA23202@ucbvax.Berkeley.EDU>, 440488@UOTTAWA.BITNET (Doctor Who) writes:
> > megabyte of ram that plugs into the cartridge port.
> >   But according to the infamous Abacus book ST Internals, (p96) writing
> > to this address creates a bus error. They tried putting a ram disk in
> > the port but without sucess.
> > 
> >   How did Alpha get around this so that the Megadisk would work with
> > out creating bus errors?
> 
> 	Who knows? One Meg seems a little optomistic as the ST only has
> 128K of address space available for the cartridge port. Where will this
> extra memory go?

First, how to write to the cartridge port:  You fake it by assigning
one of the address lines as a read/write line.  This, of course,
halves the amount of memory you can put on it, but that's life.  So,
whenever you 'read' an address with the high-order address bit set,
that tells the logic on the cartridge to grab whats on the bus on the
next 'data' cycle and write it to the location specified by the
low-order 16 bits of the original address, or some such rot.

Second, how to address one meg of data in a ramdisk with only 128K (or
64K with read/write line) of address space:  Simple.  The Ramdisk
doesn't work with addresses, it works with sectors.  You send the
ramdisk either a 'read sector' or a 'write sector' command, followed
by 512 bytes (or whatever your 'sector' size is) of data.  You'd
probably need a 1-sector buffer on the ramdisk in addition to the
memory used for the disk emulator.  This would be pretty easy to do as
an embedded application with an HD64180 cpu, or something like that.

		Wes Peters

P.S. - Don't ask me the particulars of the interfaces, those are
hardware problems.  Call an engineer.
-- 
    /\              -  "Against Stupidity,  -    {backbones}!
   /\/\  .    /\    -  The Gods Themselves  -  utah-cs!utah-gr!
  /    \/ \/\/  \   -   Contend in Vain."   -  uplherc!sp7040!
 / U i n T e c h \  -       Schiller        -     obie!wes

hase@netmbx.UUCP (Hartmut Semken) (04/27/88)

In article <542@csvax.liv.ac.uk> unpowell@csvax.liv.ac.uk writes:
>>   But according to the infamous Abacus book ST Internals, (p96) writing
>> to this address creates a bus error. They tried putting a ram disk in
>> the port but without sucess.
WRITING to the adresses of the rom port does not generate a DTACK respose
and ends in a bus error. READING is possible, of course.
>> 
>>   How did Alpha get around this so that the Megadisk would work with
>> out creating bus errors?
Simple. READ the port and let a littlie GAL take the lower byte of the
adress bus out to the world (RAM or port or write only memory or the like).
>	Who knows? One Meg seems a little optomistic as the ST only has
>128K of address space available for the cartridge port. Where will this
>extra memory go?

It's a RAMDisk. 
The idea is the same as with the EMS boards for PCs: a little window is
"currently" accessed and this window is sliding over the Meg, or two
or...
hase
-- 
Hartmut Semken, Lupsteiner Weg 67, 1000 Berlin 37 hase@netmbx.UUCP
I think, you may be right in what I think you're thinking. (Douglas Adams)