[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Help Transporter _modem_
In article <mnementhCup59q.3D0@netcom.com>,
David R. Villegas <mnementh@netcom.com> wrote:
>
> Is it possible to trick the PCT into using the Apple's RAM as well?
> I suppose /RAM could be formatted and a program could add virtual
> memory to the system.
The PC Transporter cannot directly access Apple RAM. It could only do
so via emulated I/O ports, with assistance from a portware driver
running in the Apple.
It is impossible to emulate "extended memory" or XMS, since they both
require an 80286 processor or better.
It might be possible to emulate EMS. EMS operates by providing a 64k
page frame buffer in which each of the four 16k "pages" can be
bank-switched to different memory areas.
The original EMS implementations used a memory card which had a large
amount of RAM on it (1 megabyte to 16 megabytes), and a configurable
"start address" for the EMS page frame. By writing to registers on the
card, you could select which 16k RAM page was switched into each of the
four 16k "windows". The page switch is very fast - it rearranges the
memory map of the card.
In a 386 machine, EMS can be emulated by remapping parts of extended
memory into the page buffer, via use of the 386's "Virtual 8086" mode
and a memory segment mapping table. This slows down the operation of
the computer a little, because every memory access has to be checked
(by hardware) to work out where it is supposed to go. Interrrupt
handling is also slowed down.
Applications access EMS via a driver (LIM-EMS 3.2 or 4.0), which
provides a standard set of calls, hiding the details of the underlying
implementation.
There is an EMS driver available which lets you use hard drive space
as if it was EMS - a 64k buffer in normal RAM is reserved, and calls
to the EMS driver cause 16k chunks of data to be read and written from
the hard drive.
This works on a PC Transporter.
A faster mechanism would be to implement a similar scheme using IIgs
memory instead of hard drive space. A 64k buffer in normal PCT RAM
would be required, and the EMS driver would have to be written, as
well as a portware driver on the Apple II side. Requests to the EMS
driver would perform an I/O access which would be handled by the
portware driver. An EMS page flip would require copying 16k of data
out of the PCT's memory and into the appropriate part of the IIgs's
memory, and another 16k would be copied from the IIgs back to the PCT.
This wouldn't be very fast, but it would be faster than a hard drive
EMS emulator and it would allow extra memory for those programs which
support EMS. (I wouldn't suggest using it for disk caching, or
something like that, because it would probably slow things down.)
Doing this with a IIe or II+ memory card might be a little tricky -
you really need a 16k buffer somewhere in the Apple to hold the data.
A bank-switched card like the AE RamWorks would be even messier.
> Now that AE's out of business, how would we go about contacting the
> ex-AE folk and obtain programmers' info or even the source code for
> the PCT software?
Interesting idea. Unfortunately, I don't know the answer.
--
David Empson
dempson@actrix.gen.nz
Snail mail: P.O. Box 27-103, Wellington, New Zealand