Rockwell.
An eccentric little chip. I never did get a chance to play with the
16-bit version...
mathew
--
Seeking a decent bug-tracking system for Windows, DOS, UNIX, Mac...
I always thought it was MOSTEK (?), and I heard that C= had purchased
MOSTEK (thus becoming the source of 6510's for C-64's, as well as
providing a way to fab custom chips).
This is all unconfirmed, of course. Just rumours I heard long ago...
Shannon Lawson
law...@amcu-tx.sps.mot.com
: I always thought it was MOSTEK (?), and I heard that C= had purchased
: MOSTEK (thus becoming the source of 6510's for C-64's, as well as
: providing a way to fab custom chips).
: This is all unconfirmed, of course. Just rumours I heard long ago...
: Shannon Lawson
: law...@amcu-tx.sps.mot.com
There are 2 branches of CPU development. Intel and Motorolla. The 6502
is an offshoot (if I'm not mistaken) of the 6800. It isn't functionally
the same, but is of the same family. Because I heard it was invented by
a group of ex-Motorolla engineers. Eventually I believe many manufacters
were allowed to produce the chips just like companies like Cyrix make
Intel chip clones.
One of the ways you can tell th 6502's lineage is its "endian" mode. The
Intel and Motorolla handle "CARD" values (double bytes) in an opposite
way. I believe the 6502 follows the 680x and 680x0 method which is "big
endian" and the Intels are "little endian". This is probably THE biggest
reason why emulating Intil in 680x0 software or 680x0 in Intel software
never works as well as emulating a similar processor family because there
is SOOO much overhead just flipping the bytes around before they get to
the CPU.
It's like english alphabet vs. Hebrew, one going opposite to the other.
The new PPC machines from what I hear have a flexible enough RISC
processor which can do BOTH modes equally well which is one of the keys
to their future emulation success.
: Rockwell.
: An eccentric little chip. I never did get a chance to play with the
: 16-bit version...
The 16-bit version (or one of them) is the 65816, and its under
the hood of the SNES. Which you can program pretty easily for about $300
if you really want...
- pgood
You don't want to use the 16-bit version (as in the SNES) - its a real
pain in the arse - the 16-bit mode toggle caused more programming
errors than I care to remember.
--
------------------------------------------------------------------------
David Cowan Insert Clever SIG here !
------------------------------------------------------------------------
Dav...@Vissci.Demon.Co.UK
------------------------------------------------------------------------
My Employer doesn't give a toss what I say,
because he know its mostly Bull !
Well, I can tell you that the 6502 was designed by Chuck Peddle, who
later worked for Commodore (when they were making PETs). It's quite
possible people other than Rockwell produced 6502 chips, but I thought
the question was which company *originally* produced it...
Perhaps we should call in comp.arch. I'm sure there are people on the net
who actually helped make the chip masks and so on...
: I always thought it was MOSTEK (?), and I heard that C= had purchased
: MOSTEK (thus becoming the source of 6510's for C-64's, as well as
: providing a way to fab custom chips).
: This is all unconfirmed, of course. Just rumours I heard long ago...
: Shannon Lawson
: law...@amcu-tx.sps.mot.com
I thought it was Mostek also. I think I still have a coke stained white
Manual with Mostek plastered on the front cover. Goes with my original
Red-book apple II reference manual (complete with OS dissasembly notes).
Ah, memories! I love the 6502, it spoilt me forever from using Intel
chips of any kind - I could never understand why you would want to segment
memory and then call it a *feature*. Talk about double-speak.
Give me LDA/LDX/LDY anyday, the extra addressing modes were so much
more usefull - a perfect introduction to C pointer twiddling.
And page zero! what a great concept - like a bank of 256 registers ready
for your programs most important things.
Some 6502 instructions were done in one cycle, right? : the first RISC
chip! I was aghast when I saw the 8080 cycle-count table.
Jeezuz... Some people are taken back to their childhood by the sound of
an old hit single, or a classic car - for me, its dreams of hand tracing
bootstrap loaders on an Apple II, trying to keep up with self-modifying
6502 code so I could liberate Raster Blaster or Defender.
Weren't there some "undocumented" 6502 instructions also?
Anybody have a list?
--
Justin "] CALL -151 ...hack... *9dbfG"
jus...@lehman.com
>One of the ways you can tell th 6502's lineage is its "endian" mode. The
>Intel and Motorolla handle "CARD" values (double bytes) in an opposite
>way. I believe the 6502 follows the 680x and 680x0 method which is "big
>endian" and the Intels are "little endian".
Your assertion that the 6502 uses the same "endian" mode as the 68XX and
68K family is correct, but according to my 601 manual, you have "big endian"
and "little endian" reversed: "big endian" means that the MSB is labelled '0',
whereas in "little endian" mode, the LSB is labelled '0' (where MSB/LSB can mean
either Most/Least Significant Bit or Most/Least Significant Byte).
Example:
Bit order for a big endian byte:
01234567
MSBit^ ^LSBit
Bit order for a big endian byte:
76543210
MSBit^ ^LSBit
>The new PPC machines from what I hear have a flexible enough RISC
>processor which can do BOTH modes equally well which is one of the keys
>to their future emulation success.
The PPC CPUs default to big endian mode (which is like the IBM Power
architecture) , and except for the 601, you can actually specify a different
endian mode for user versus supervisor operation modes!
--
Shannon Lawson
Great! Thanks for confirming my vote, John!
:-)
--
Shannon Lawson
From what I remember it was MOS, this became a CBM company,
and then there was Sinertic or some thing like that,
they also made the 6502 and the later CMOS 6502....
The 6510 had some thing to do with the first 10 bytes or bit from
what I can remember, this was a MOS version....
>mathew
Roger W. Sheppard Internet - shepp...@kosmos.wcc.govt.nz
r.she...@genie.geis.com
GEnie - r.sheppard5
$4000: A2
$4001: 34
And it would be stored like this on an Intel, or little-endian
processor:
4000h: 34
4001h: A2
Same holds for longwords, etc. Any given BYTE is in the normal
order (MSB....LSB) but the bytes are ordered
least-significant-to-most-significant in ascending memory in a
little-endian processor, and the other way around ("the correct
way" if you're a Motorola fan, ha!) in a big-endian processor.
-Herb
--
: Weren't there some "undocumented" 6502 instructions also?
: Anybody have a list?
Yes, there were such instructions. COMPUTE! magazine printed an article
on this subject several years ago. It contained a detailed list. Until
about 6 months ago I used to have that issue right nearby. The next time
I dig it out of a box somewhere here I'll post the issue. I don't
remember what year or month it was, but I think there was a drawing of a
space shuttle on the cover.
As I recall many, or most, of the undocumented instructions worked on
the ATARI computers. The problem is how does one assemble them? The later
MAC/65 was on cart, so there was no way to modify the assembler. The best
one could do is define a byte and store the value, or create a macro to
do it.
I actually tried all the undocumented, unsupported 6502 instructions
mentioned in the COMPUTE! article. You'll find most of them are not very
useful, I'm sorry to say. The article teaches the reader how the 6502
instruction set can be thought of as just a 2x2 table or something. It's
a fascinating piece of work, if you can get hold of a copy. Just remember
that you'll have little if any use for most of the additional
instructions. A project I keep putting off is to see what each of the
instructions do on each of my 8-bit Ataris.
The undocumented instructions were frequently used by Apple II game
programmers to boost performance due to the II's lack of dedicated sound
and graphics. When the IIc and IIe (enhanced version?) were released old
software would not run because the unsupported opcodes had been removed
from the mask.
Now here's a challenge for only the truly best of 6502 fanatics...
How many of you are aware there was a 6501? I stumbled on to that
information several years ago while reading a technical journal or
something. The 6501 was short lived. As I recall the article stated the
mask of the 6501 was changed to avoid copyright infringement with the
6800, and to eliminate some existing bugs. This new mask became what we
know as the 6502. See if you can locate the magazine/journal which
published this article, which was about only a paragraph in length. I
have no idea who it was.
Mark Kopec
mk5...@pegasus.cc.ucf.edu
Thinking twice, I'm unsure if this was the 6800 or 6809. Regardless, you
get the idea.
I located the undocumented 6502 instructions article. Refer to the
October 1983 issue of COMPUTE! magazine, page 261. "Extra Instructions"
is a very informative article on this subject, the best ever written.
The majority of you won't have access to the article, so a short summary
of the undocumented instructions follows. Please note that, as I stated
in my original posting, I tried all the instructions on an Atari a few
years ago, and most of them worked as explained in the COMPUTE! article.
If I remember correctly, a few of the instructions didn't work, but I
have no details.
Opcode Description
----------------------------------------------
ANDX AND A with X
DCMP Decrement M (memory), Compare to A
ISBC Increment M, Subtract from A
LDAX Load A and X
RLAN Rotate M Left, AND with A
RRAN Rotate M Right, AND with Carry
SLOR Shift M Left, OR with A
SREO Shift M Right, OR with A
TSTA Test bit 2 in A
TSTX Test bit 2 in X
As you can see, a few of the opcodes could be very useful, while others
are more specialized. Altogether there are 33 new opcodes! (Don't just
look at the mnemonics above; be sure to account for different addressing
modes.)
Yet another idea for using the codes is to modify your disk based
assembler, as many of the earlier game programmers did. Has anyone tried
this with AMAC or any other popular assembler? Or perhaps some of the PC
cross assemblers support the undocumented codes?
Mark Kopec
mk5...@pegasus.cc.ucf.edu