!Pr1
Review of M-c-T SpeedDemon.................Bob Sander-Cederlof

Is the Apple II a slow machine?  Hey, it MUST be!  After all, it is over 8 years old!  It only has an 8-bit microprocessor!  It only has a 1-MHz clock!  It must be many times slower than today's PC clones, etc.  Isn't it?

No.

The 6502 is inherently faster than most other microprocessors.  An old rule of thumb had it that a 4-MHz Z-80 ran roughly the same speed as a 1-MHz 6502.  Other factors, such as memory speeds, overhead for screen and keyboard, and disk I/O also influence the overall speed, often in favor of the venerable Apple.

Some comparisons come to mind with machines from the past.  Anyone remember MIT's "Whirlwind"?  A long time ago, its speed was considered super.  I'll bet it wasn't as fast as an Apple.  According to the book, it had an upper limit of 2048 16-bit words of "high-speed" memory, and had a design limit of 50,000 instructions per second.  In actual implementation, it only ever achieved 20,000 operations per second.  And that was with a 1 MHz clock!  The 6502 with a 1 MHz clock runs from 500,000 to 142,000 operations per second, depending on which ones you are doing.  Probably an average of 250,000.

How about the Bendix G-15?  It was the "personal" computer of the 1950's, roughly the size of a large refrigerator (much warmer though) and selling for only $50,000.  Engineering firms bought them eagerly for their friendly features, amazing flexibility, capacity, and speed.  Let's see....  G-15 had 2183 words of RAM, on a magnetic drum, 29 bits per word.  Most operations were measured in milliseconds.  A floating point interpretive package, called Intercom 500 (or 1000 for double precision), could almost keep up with the typewriter (an IBM Executive, the primary user I/O device).  Paper tape cassettes served as handy off-line storage devices.

Some other popular systems were considered fast with memory cycle times over ten microseconds per byte.  Fast enough to support several users in a timesharing environment, compile large Fortran programs, and manage large businesses.  And usually with smaller than 128K bytes of RAM.  Or "core", as we called it in those days.

Nevertheless, Apples often seem slow.  Because we ask them to do a lot, and don't want to wait around while it is done.  And tolerable waiting times one day seem intolerable the next, because we get used to it.  Remember when a trip around the world in 80 days seemed impossibly fast?

Perceived necessity being a prime motivator for innovation, several methods for dramatically accelerating Apples have been developed.  Titan Technologies markets the Accelerator, and Microcomputer Technologies (McT) the SpeedDemon.  These both promise "up to" 3.5 times faster running speed, and actually deliver an average of over 2 times faster.

We have wanted to try one of these boards for years.  The price was too high and our faith too low, so we never bought one.  Recently the price has dropped considerably, and reports from friends using them have increased our faith.  When McT offered to loan us one for a month, we had no more resistance at all.

Imagine this scenario:  the card arrives by UPS at noon.  Thirty seconds later we have it in our hands, and are trying to find an Apple with at least one empty slot.  Despairing of that, we take out a card and make room for the SpeedDemon in our //e.  We turn on the //e, load up the S-C Macro Assembler, and proceed to assemble the biggest program we have.  Wow!  That's fast!

We promptly ran a lot of speed tests, timing various programs we commonly use around here:

!lm+5
S-C Word Processor
  Load 89 sectors      6.8   5.5   1.2
  Search /###/        10.4   3.3   3.2
  Replace /85/##/      8.3   2.8   3.0

Mail Label System (primarily Applesoft)
  Load 48 sectors     23.7  13.8   1.7
  Sort - last name   140.6  49.1   2.9
  Sort - zip code     56.0  20.0   2.8

S-C Macro Assembler
  Assemble 771 lines   7.2   3.0   2.4

AppleWorks Data Base
  Load 47K            25.7  25.0   1.0+
  Sort - last name     2.2   1.0   2.2
  Sort - zip code      5.0   2.0   2.5

AppleWorks Spreadsheet
  Load 35K            20.3  19.3   1.1
  Recalculate         14.9   6.6   2.3
  Insert 9 rows        4.9   1.8   2.7
!lm-5

In a review by Lee The, Personal Computing, Jan 85, the Apple with SpeedDemon was compared to a Compaq PC.  Lee compared the systems using word processors on the two machines.  The accelerated Apple ran faster in most cases, except when disk I/O was involved.  In one case, even an un-accelerated Apple ran faster; the SpeedDemon to Compaq ratio was 4.4!

To summarize, the SpeedDemon really does make your software run faster.  The absolute maximum speedup factor is 3.5, but no "real" program would achieve it.  The two things that keep you from reaching 3.5 are I/O and memory.

Some I/O cards, notably the disk interface, use software timing.  If you speed up the processor while trying to read or write the disk, you are in trouble.  SpeedDemon automatically slows down to normal Apple speed when you access slot 6.  Jumpers on the card allow you to do the same for slots 4 and 5.  I have a disk controller in slot 7 in one of my Apples; I cannot read or write to disks using that controller when the SpeedDemon is active.

Old Apple serial interface cards used software timing loops to convert a byte to a bit stream at a given baud rate.  These cards normally were placed in slots 1 or 2, and thus would not be compatible with the SpeedDemon.  Modem cards sometimes use software timing for dialing, and they would not work right if accelerated.  Any sound effects created through the Apple speaker will be raised way up in pitch.  Music cards which depend on timing loops will make a whole new kind of sound.

The card can be turned off in two ways, so the above problem areas can be circumvented.  During the power up cycle you have about two seconds during which you may tap the ESCAPE key.  If you do, the card will be turned off.  Then you hit ctrl-RESET to go into a normal boot.  Another way to turn off the card is to store anything into $C05B (POKE 49243,0).  After the POKE the Apple will lock up; when you hit ctrl-RESET it will come back in normal speed.  There is no way to turn the card back on without turning off the Apple.  (Some of you can probably find a way to re-wire it so it could be turned back on.)

The other way the card slows down is during memory access.  Apple memory can only be accessed at a 1 MHz rate, so the processor can spend time waiting for memory.  SpeedDemon has a 4096-byte cache memory which can run at a full 3.58 MHz rate.  The cache is implemented with 4 static RAM chips, providing 8192 bytes of RAM.  These are paired so that you get 4096 data bytes and 4096 address bytes.  Whenever you read a byte from RAM or ROM, the low-order 12 bits of the address select one of thes 4096 byte pairs.  The high 4 bits of the address are compared to the 4 bits in the cache; if they are the same then the data in the cache is presumed to be the data you want.  If not, the processor will wait for Apple's memory to read, and then update the cache with the result.  Something like that, anyway.  Stores into memory always slow down to a 1 MHz rate, because the stores MUST be performed in real RAM, not just cache RAM.

I might have been talking through my hat in the above paragraph.  There is no technical documentation available on the SpeedDemon, so I am just deducing the way it works from external appearances.

The Titan Accelerator card has a full 64K RAM, rather than a cache.  It is therefore a little bit faster.  Reports from those who have tried both indicate Titan is only about 10 percent faster, if that much.  Of course you could design artificial situations in which the difference would be much more dramatic.  Personally I think I would rather have the cache.  And also the cash, since SpeedDemon costs about $25 less.

Titan's card draws about 300 ma at 5 volts, SpeedDemon draws about 600 ma.  Titan's card uses more CMOS, and is more sensitive to static electricity.

SpeedDemon uses a 65C02, so you have the additional opcodes and address modes of this enhanced 6502 chip available.  I believe you could romove the 65C02 plug a 65802 into the socket and gain even greater enhancements.  You would have to have a 65802 rated at 4MHz, but the ones I have are only 2 MHz chips.

There are five PLA's on the SpeedDemon.  At least some of these are used to keep track of whatever bank switching you do with Apple's RAM and ROM.  Somehow they are able to keep track of the RAMWORKS card too, so the cache doesn't get confused even with a megabyte of RAM.  I worry about using it with my STB128 card, or the other cards of the type.  Boards which store into Apple RAM using DMA transfer will possible give trouble.  I don't know for certain because I don't have any.

I also worried about compatibility with QuikLoader.  Both QL and SD want to take control of the bus on power up or reset.  Both substitute their own firmware for whatever is plugged into the mother board.  Sure enough, when I tried them both in the same machine they did not work.  On power up both cpu's began to operate.  SD drew its hi-res graphic logo, and then died.  QL died too.  Take either card out, and all is well.

Speaking of firmware, I should mention that there is a 2716 with 2K of firmware on the SpeedDemon.  When you power up or hit ctrl-RESET the firmware on the card takes control.  It sets a bunch of //e soft switches, in case it is in a //e, and then looks at the power-up bytes to see whther this is a RESET or power up.  (Remember the power up bytes at $3F3 and $3F4?  These bytes will be random when you first turn on your Apple, but during initialization they are set so that the exclusive-or of the two bytes is $A5.)  If SpeedDemon thinks you have pressed ctrl-RESET, it copies a short (21-byte) program from its own ROM down to $1D0 and jumps to it.  The program turns off the SpeedDemon ROM (by storing at $C800) and then uses a loop to make sure the cache doesn't contain misleading information (I call this action TRASHING the CACHE).  Then it jumps to Apple's normal reset code.

If SpeedDemon thinks it is power-up time, because the "eor" the bytes at $3F3 and $3F4 is not $A5, it trashes the cache and copies a large program down to RAM at $1000 through $17FF.  Then it trashes the cache again, clears the text screen, and jumps to $1000.  The copied code at $1000 turns off the firmware ROM, clears the hi-res screen, switches on hi-res graphics, and draws the SpeedDemon logo.  This all takes about two seconds.  Then it reads the keyboard to see whether you have typed an ESCAPE, a "1", or a "T".  ESCAPE signals SpeedDemon you want to run at normal Apple speed, so it shuts itself off.  The other codes cause self-testing code to be executed.

I had a lot of fun figuring out the firmware.  It so happens they purposely arranged all the bits in the EPROM in reverse order, so that I had to write a program to flip the bytes around before disassembling the code.  I guess it was an attempt to frustrate reverse engineering.  I think they should have re-arranged the address lines too, if they really are worried about it.

If all the above makes you want to rush right out and buy one, the price is $295 from Microcomputer Technologies (McT), at 1745 21st St., Santa Monica, CA 90404.  Their phone number is (213) 829-3641.  If you are a member of Call APPLE, they are selling the SpeedDemon card for only $199.  The name on the card has been changed to "Mach 3.5", but it is the same as SpeedDemon.  Call them at (206) 251-5222.  Since the Call APPLE price is as close to wholesale price as we can get, we will not be trying to sell this board at S-C Software.

By the way, Call APPLE's ad contains a warning:  "Mach 3.5 is not compatible in speedup mode with Saturn, Legend, Prometheus expansion memory cards with programs that make use of the extra banks on these cards.  A compatible version of Mach 3.5 may be specially ordered."
