stepping machanism of Apple Disk ][ drive (was Re: Heatkit 51/4 floppies)

From: Richard Erlacher <edick_at_idcomm.com>
Date: Sat Apr 10 03:15:08 1999

At the risk of becoming the resident infidel . . .

The 6502, particularly in its later incarnation by Rockwell embodied the
cleverness fostered by its earlier versions and the non-Intel family of
processors. How the elegance of their instruction set became lost is a
mystery to me.

The most primitive analysis of the microcontroller's task is (1) fetch input
signals, (2) take appropriate action. Now this is oversimplified to the
max, but if you consider a comfortable and quick way to do this on most any
processor, you'll quickly get a feel for what I mean to say, even though I
can't easily articulate it.

On inspection, the "general" way to handle this is with a "computed go-to."
That doesn't say it's the ONLY way, but it's a way which does the job
ALWAYS. Just to get my hands around the problem, let's assume we're making
a simple communication device which process ASCII characters, mostly, by way
of two serial ports, one in, one out. We can then hook up the UARTs such
that the lsb is always grounded and the 7-bit ASCII appears left justified
in the UART's data register.

On a 65C02 from Rockwell (making the distinction because there were several
CMOS 6502's, all slightly different) you load the input value into an index
register and then jump, indexed indirect, to the routine which is
appropriate for that pattern of inputs. This requires, then, that you have
a table with 256 bytes, more correctly 128 words, with each word the
address of the routine which is used to process the left-justified ASCII
data.

This is tremendously fast! It requires no STACK, and it requires only two
instructions. Another way of doing this involves building a stack frame and
loading the return address with a value looked up in a table, then executing
a return. This can be done with any number of processors. On a Z-80 you
can jmp HL, and I'm sure there are other neat ways of doing this simple
thing. I've never seen anything more elegant than that simplistic sequence
on the 65C02. How the MOTOROLA people let this go by the wayside in the
design of their 6809, 6801, 68K family, and countless others puzzles me.
I've not made an extensive study of other processors, but I have looked at a
few. The only processor I've used which has a similar mechanism at its
disposal is the 8051 core. It has a data register which can be used as an
offset for a jump instruction.

Now, I doubt that anything that simple can be used to discriminate between
what's "best" and what's not, but it's for certain that it's a nice feature
not available on the 6809. I used the 6809 extensively while I was in the
aerospace industry, and found it fairly friendly. BUT, it still is
relatively slow, as compared with processors of the same generation from
sources clever enough to arrange the bytes the other way around in memory so
you didn't have to fetch and the discard a high byte when there wasn't one.
Fortunately, many tasks don't require a really fast processor.

Dick

-----Original Message-----
From: Tony Duell <ard_at_p850ug1.demon.co.uk>
To: Discussion re-collecting of classic computers
<classiccmp_at_u.washington.edu>
Date: Friday, April 09, 1999 4:46 PM
Subject: Re: stepping machanism of Apple Disk ][ drive (was Re: Heatkit 51/4
floppies)


>> >It proved software was more important than hardware. The best cpu with
no
>> >software was still nothing. The z80 was maybe the best at the moment
but
>> >the 6502 was as versitile and plenty fast enough to make up for it's
>> >limitations.
>>
>>
>> There were many people who disagreed with that performance comparison.
The
>> two processors (I used them both extensively) were different enough that
>> comparison and contrast was not easy. The Z-80 had many registers and a
>> rich instruction set of which much was awkward and difficult to use. The
>> 6502 had fewer registers and fewer instructions but they were amplified
by
>> addressing modes not readily available to the Z-80 user, particularly if
his
>
>IMHO, the best of the 8-bitters was the 6809 (very clean instruction set
>and quite fast), but that came out rather too late to be a serious
>competitor to the 6502/Z80.
>
>I grew up on the Z80, and for a time I thought that the 6502 was a
>horrible little chip. But then I got to use a 6502 in the BBC micro and I
>totally revised my opinion of it. The 6502 instruction set was simple and
>fairly clean. For high-level languages it was a fine processor (BBC basic
>on a 2MHz 6502 was faster than similar BASICs on 4MHz Z80 machines).
>
>>
>> The TRS-80 could have been put out with (1) an 80x24 display rather than
the
>> 16x64, it could have solidly supported double-density FD's (in the model
3)
>
>I've never had any problems with the M3 disk controller, and I've used it
>pretty extensively (well, I did have a 1793 die once, but that's not a
>design problem).
>
>> and it could have operated at about 4MHz rather than the 2.-something it
>> used, and it could have switched in and out the ROM so it could run CP/M
but
>> for the greed of Tandy Corp. It would have cost them an additional $5
and
>
>Err.. That sounds very like the Model 4 to me. Lets see, 80*24 screen, 4MHz
>CPU, ROM can be switched out... Yes, a model 4. Of course it used the
>same disk controller as the M3, so if you had problems with that you'd
>still have problems...
>
>> on the Apple II. If Tandy had gone with the better design, which was on
the
>> table, there probably would be no IBM PC today.
>
>No. Never forget the 3 magic letters 'IBM'. That's why the PC was
>succesful. Technically there were plenty of better machines around at the
>time, but they didn't have the appeal of coming from a company that
>_every_ computer centre and DP manager had heard of.
>
>-tony
>
Received on Sat Apr 10 1999 - 03:15:08 BST

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:31:41 BST