[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Microsoft Softcard and IIgs



Steven Hirsch wrote:
vladitx wrote:

Definitely the PCPI design takes the least-resistance path and
decouples the Apple II and the Z80 system as much as possible, at the
cost of  losing the direct access to Apple II memory.

And why is that a problem?

Speed, since it requires a 6502 "proxy" and a handshake to access
Apple II memory locations, for text, graphics, or memory-mapped I/O.

The Apple II architecture is designed to be controlled by accesses to
memory addresses, sometimes precisely timed.  Interposing interprocessor
communication has serious speed effects when Apple II state must be
changed.

I'd guess that screen scroll suffers from this. Another guess is that
probably GBASIC doesn't work on Applicard?

Actually, with a good software implementation the screen scrolling is far quicker with a decoupled coprocessor. The host processor has control all the time and simply needs to read bytes from a port and write them to the screen. With the softcard, regardless of who is writing to the screen (and I don't recall offhand whether this is 6502 or Z80 code) they share bus cycles with the other guy.

I agree that using multiprocessing speedup for scrolling is a win,
compared to doing it all on one processor or the other.  As you note,
there are severe interference effects with the Softcard, but it also
allows the 6502 to make progress while the Z80 is running, since the
Z80 doesn't make use of all of the memory access slots.

PCPI actually missed a few opportunities for improving performance in this area, but out of the box it's quicker than a softcard. When I did the CardZ180 BIOS, I was able to able to trim a lot of overhead from screen output and it could easily keep up with a 19k2 baud modem. Stock Applicard would drop characters in this mode and the Softcard was hopeless.

And the fact that it runs the Z80 almost twice as fast as the Softcard
is certainly a factor!

Add an accelerator to the host and sky's the limit. You cannot use an accelerator with a DMA device. Applicard works with any accelerator on any version of the A2.

For me, this is a huge advantage.  It's too bad that most accelerators
were not implemented with DMA compatibility (though I know it would have
complicated them).

I have a ROM1 GS and a SoftCard clone. If you want I can test it.

01 and 03 should be identical in the slot operations, but yes, if you
find the spare cycles and feel interested - please do.

I will dedicate a day (no plans, though) to plug the analyzer in IIe
and IIgs and see what's wrong. M$ SoftCard is the only DMA card I have
so far.

There were very few A2 cards that used DMA. The only others I can think of are the Transwarp I (DMA with a vengeance - once it grabs on, it doesn't ever let go) and the Vista 8" floppy controller.

Actually, any DMA device in the Apple II must "let go" frequently
to prevent the 6502 from losing its dynamic state.  Woz did some
experiments and found that typical 6502s could tolerate much longer
"holds" than were specified, but the time was temperature- (leakage-)
dependent, so holding it longer than factory specs is iffy.

-michael

******** Note new website URL ********

NadaNet and AppleCrate II for Apple II parallel computing!
Home page:  http://home.comcast.net/~mjmahon/

"The wastebasket is our most important design
tool--and it's seriously underused."