litwr wrote:
Thank you very much for reading and valuable comments. Indeed my material shows my point of view, it can't be completely free of gaps in my knowledge. I have really try to use only correct data but my other purpose is to make the article emotional, so it contains unproven assumptions (which can be true), information about contradictory claims, etc.
I don't think you succeeded. I can understand wanting to write an article that is not just statements of facts, but forces the reader to really think about the topic at hand. But, if you want to do that, you have to construct the sentences that are "emotional" in such a way so as to not immediately invoke the reader's guard. If you push the reader out of the reading "zone" into the defending "zone", you've lost the reader, in my opinion. Thus, I think you first have to get the reader heavily invested in the article, such that they will push towards the end. TO do that, you need to start with maximum facts, and minimal editorial, and then ramp one one as you ramp the other down through the course of the article. Also, you need to be more nuanced in your editorial. Saying Bill Mensch "played a rather ambiguous role" pushes people out of the article, because the groundwork has not been laid. If you had started by noting what Bill did do, showing the reader that you've indeed learned quite a bit about the man and his work, and seemingly building a platform for showing how important he is/was, THEN you can call out specific items (Bill was instrumental in the design of design of the NMOS 6502, but he was simply implementing the ideas given by Chuck Peddle. Once on his own at WDC, Bill hewed very close to the original 6502 design originated by Peddle, when there are ample opportunities to push the boundaries of the 65XX design... I think people would be more willing to accept the argument, even if they do not agree with it (I don't but I wouldn't dismiss it out of hand either).
Quote:
We have the MOS Tech specialists claim.
A claim without a source is useless. Either cite the source in the article, as a footnote, or leave it off, or note the alleged nature of such a statement.
Quote:
Is there refutation of it? No. Instead of the refutation we have only some speculative phrases.
Weak. At some point, the evidence becomes too weak to present. Every time a CPU came out, there was a way to massage the numbers to make the new CPU look impressive, even when it was not. As such, people always look at such statements with skepticism, and they look at people who lift them and re-use them with the same skepticism. Essentially, the reader is thinking "Hmm, does the author even know how biased those statement are in general? I'm not sure they even understand the subject matter..." You NEVER want the reader to start questioning your grasp of the subject matter. You're the writer, it's your responsibility to build a convincing case, as you shape the message.
Quote:
Anyway I called the 6800 as mediocre not in absolute sense but in comparison with the 6502. I can give another example, IMHO the 8080 is mediocre in comparison with the Z80.
I don't think you'll find many people who agree. The Z80 is superior to the 8080, but that does not mean the 8080 is mediocre or inferior to the Z80 (For a non-English speaker, I know that sounds non orthogonal, but I can assure you the two words are not completely complementary.
The word "mediocre" is a loaded word, like "stupid", or "inept" or "useless". It is often used for effect, to amplify some perceived slight. Using it here implies you found the 6800 severely lacking. I think you may just be attaching not enough significance to the word usage. Consider "less optimal", "6502 is superior", or something like that. I think people will be willing to agree with you (6502 fans will be quick to agree the 6502 is "superior" to some other processor like the 6800, and some might even say it is superior to the 8080/Z80, even at 1MHz 6502 = 4MHz Z80). But, calling something "mediocre" is just asking for the fight. Case in point, the TMS9900 16 bit processor in the TI 99/4A is hardly a "mediocre" processor. But, the performance of the TI 99/4A suffered greatly due to system design constraints that strangled the poor processor's capabilities.
Quote:
I don't use word "mediocre" in the 6800 family article -
https://litwr.livejournal.com/1396.html . I checked the 6800 ISA and it looks not so good as the 6502 ISA for me. I know the 6800 programming much worse than the 6502 so I am not completely sure in my points. Of course, for some tasks the 6800 should show good performance, for instance with signed arithmetic. We can try to make some research in this area.
Bill felt the second index register was a good call, over the second accumulator. But, all in all, the two CPUs get about the same amount of work done per unit time, of a reasonable mix of work. Still, this is easy to test. The 6502 crowd can write some sample apps (sorting app or sieve or something else) and the 6800 crowd on the SWTPC or the MC10 could be asked to write the same thing. Results could then be compared. If you take out IO and such, the comparison would be pretty valid.
Quote:
Sorry for my English. I am really not a native speaker.
However it seems that you could understand my text almost well. I wrote about the 4510 (65CE02) several times, IMHO Commodore did several quite good improvements (a better instruction pipeline is among them) although they were rather too late.
But, you made the accusation before laying the groundwork. And, even though you note the 4510 improvements, your statement was: "the 6502 was only microscopically improved and made artificially partially incompatible with itself." If we assume you bundle the 4510 into the 6502 line, your statement is "the 6502 line (including the 4510) was only microscopically...". If, we assume the 4510 is *NOT* included in the 6502 line, then your statement is "the 6502 line, until the 4510 was only microscopically...", which is better, but only if you've discussed the 4510 improvements before you make the statement. Without the introduction, the reader is left wondering what 4510 is and how it improved things. As well, the 4510 statement of improving things pokes a big hole in the master premise of you paragraph, which is that the 6502 never got the improvements it needed. Your point about the 4510 improvements is actually a good one, but I don't think that's noted in the article at all. It's one more folks might agree with.
Quote:
I also wrote about moving some zp memory to registers. So I have given some explanations of "what kinds of improvements should have been made". The 6801 has a lot of improvements: 16-bit instructions, multiplication, better execution timings, ... Nothing similar were present in the 65C02. The 6809 is rather a completely different CPU which only resembles the 6800 or 6801 - it is much more powerful.
Again, my point is that you explain the improvements later in the article, too late. But, if the improvements were made, then your statement that the 6502 was only microscopically improved is false, by your own admission. It was improved a lot, as you note. Pick a path here.
Quote:
"The artificial partial incompatibility" in my article relates to decimal instructions (we all know about Arkanoid bug) and JMP (ABS). Rockwell extensions are separate, they are incompatible only with the 65816.
I'd call those out, to lay the ground work. If I was confused, so other are as well.
And, actually, we all don't know about these. The only reference I have on the arkanoid bug is around the NES version of Arkanoid, but that CPU has decimal mode disabled to avoid legal troubles, so I am not sure why the 6502 gets a ding if that's the reference. Help me out here.
Quote:
I wrote "a number of changes were made, which in particular led to a change in the course of executing several instructions". IMHO it is definitely only about several instructions, namely decimal ones and JMP (ABS). Maybe the phrase about "far-fetched academic sense" is not the best but I don't how to express my thought that support of extra flags in the decimal mode was not worth incompatibility with timings.
My point is that most code does not use either decimal mode or JMP (ABS). So, if you ran an emulator with a hundred programs of various types and modified the emulator to count how many uses of ALU instructions with decimal versus not and how many JMP(ABS) versus JMP of any other type, I am confident you will find the ratios very small. Thus, the slowdown on decimal mode is minor, and the compatibility concern on JMP(ABS) is likewise minor. Again, these of things one can measure.
As for your thought, I think you're better off to go down the route I'm suggesting, noting that neitehr decimal mode nor JMP (ABS) is used often. Thus, fixing these bugs is of dubious value and introduced possible incompatibilities.
Quote:
About the JMP (ABS) we have MOS documentation which clearly shows cycle-by-cycle execution of this instruction... I have given the link to my code for cjs. The code actually more cumbersome for the 65C02. You can see the full code at
https://github.com/litwr2/rosetta-pi-sp ... 502-div6.sThe use of new 65C02's instruction JMP (ABS,X) makes code much better than code with JMP (ABS). So I don't still find any reason to change JMP (ABS) in the 65C02.
I still don't see how it is more cumbersome. The code you note uses the same assembly for 6502 and 65C02, thus it cannot be more cumbersome. It is, as you note, slower on the 65c02. I think you're saying that, to get back to the same speed, you need to do some conditional assembly, which creates some cumbersome effort. If so, I can partially understand. But, as I note, people use JMP (ABS) infrequently, in my opinion, but people use:
OP LEN CYC MODE FLAGS SYNTAX
-- --- --- ---- ----- ------
1E 3 6 a abs,X N.....Z. ASL $1234,X
5E 3 6 a abs,X N.....Z. LSR $1234,X
3E 3 6 a abs,X N.....Z. ROL $1234,X
7E 3 6 a abs,X N.....Z. ROR $1234,X
at least as often and potentially more frequently, and these are 1 cycle faster in the 65c02. So, all in, I think the 65c02 will save time, even with the 1 cycle penalty of the JMP (ABS).
Quote:
There were no practical complains about JMP (ABS), all known complains were just theoretical. Anyway, it is documented and can't be bug.
Um, bugs can indeed be documented and still be bugs. All the CPUs I use have a long list of errata on them and people do indeed consider them bugs. Documenting something does not absolve it of guilt.
But, I see your point about the issue being theoretical. People were successfully working around the issue en-masse by then, so the value of fixing the bug was probably low.
Quote:
"The 65C02 was licensed to many companies, in particular NCR, GTE, Rockwell, Synertek, and Sanyo. Synertek and Rockwell companies in addition to the CMOS 6502, also produced the NMOS 6502." - is this wrong?
I am not disagreeing with the statements you make, but the timing. Specifically: "Synertek and Rockwell companies in addition to the CMOS 6502, also produced the NMOS 6502". It makes it appear that these companies licenses and started producing the NMOS 6502 either at the same time or AFTER the CMOS 65C02, but that's incorrect. They started producing the NMOS in 1977 or so, when MOS needed second sources, and then they started producing the CMOS 65C02 in the early 1980s when WDC designed it. The sentence confuses the layman reader, who may not be aware that NMOS process predates the CMOS (or at least matured before the CMOS process).
Quote:
Are you sure that CMOS of the early 80s was definitely better than HMOS-2? I have found an interesting cite from Motorola 68000 microprocessor Oral History:
Quote:
“Only a fool would have introduced a CMOS”. Because CMOS was always thought to be four times more expensive.
Your statement was "Although in the early 80's CMOS technology had no obvious advantages over NMOS and was more expensive." You split out cost from capability. The oral history is talking about the economics of CMOS, and I am perfectly content to agree CMOS was more expensive than NMOS (or even HMOS-II) in the early 80's. But, you split the two out, and so I find issue with the "Although in the early 80's CMOS technology had no obvious advantages over NMOS..." portion. It had tons of obvious advantages (lower heat, faster speeds, better drive, etc.) than any NMOS process, HMOS or otherwise, could touch. If you want to simply state that CMOS was significantly more expensive, then I'd still quibble (because better products typically have a price premium), but you'd at least be correct in the statement.
Quote:
Indeed, it was very primitive but IMHO it was better than bank switching used in many other 8-bit designs.
Can't agree there. Sorry. I implement MMU designs on 8-bit 65XX/68XX systems, and a 4kB/8kB banking mechanism is orders of magnitude more useful than the brain dead mech in the 6509. But, at least on this point, our various positions are equal, in that it's your opinion against mine.
Quote:
Thank you. I have replaced this word with word "tiny". Commodore eventually made the 65CE02 - quite a processor! However, Commodore rather buried all its fine initial projects.
tiny is better. But, it's still an awfully loaded term. Minimal, or nominal, or half hearted I think would be better (and more nuanced). tiny and microscopic are boring words.
Quote:
brain wrote:
Saying Bill did not improve the NMOS 6502 seems highly editorial to me. He improved it by moving it to CMOS.
Indeed he improved!
OK, then. acknowledge that in the article. Currently, the article still says "...he never tried to improve this processor himself." It's just wrong. Fagin improved the 8080 by designing the Z80. The same is true of Bill.
Quote:
On the contrary, I wrote that there were problems to realize systems using the more fast 6502. As somebody had a strategy to slow down the 6502 progress. The poor design of the C128 confirms this idea.
Yeah, I didn't wade into the BBC note you mention because I don't know much about it, but the above is just not correct on the C128. Sorry. CSG had faster 6502s, but making the interleaved dual processor design forced all parts to be twice as fast as normal, and CBM was not about to pay for sub 100nS DRAM to move the C128 to 3 or 4MHz (which demanded 6 or 8MHz capable DRAM), and they definitely could not switch from an interleaved memory design, as the 64 mode forced constraints. Commodore was cheap. It had nothing do with keeping the CPU speed down. It had to do with cost. And, I'm not sure what you mean about the poor C128 design. Bil Herd would challenge that notion a lot
. I'm not a huge fan of the 128, but I don't see any glaring design issues. The Z80 looks shoehorned in because it was. Marketing demanded the unit be CP/M compatible, thinking the 64 mode could run the old C64 CP/M cart, but that cart was never robust, didn't work on newer 64s, and Bil got so frustrated trying to make it work he ended up just pushing the design into the C128 to check off the requirement. If there's a design issue, it'd be there.
Quote:
I can repeat my point. One man is not enough to develop a processor.
Dunno, Bill did. He designed and developed the 65C816 himself. He's a pretty smart fellow, you should go chat with him.
Quote:
The 6502 team was disbanded. They were going to make a 16-bit processor in 1976.
Yeah, I saw you made that comment before. But, I looked at the ad, and I don't see any hint of 16 bits for a CPU. Can you point out where you see it? "The first of a low cost high performance microprocessor family" cannot be it, as that could mean so many other things.
Quote:
Bill could make it only in 1982.
Bill could only manufacture his design in 1982. Who knows when he created it. Your statement implies he only figured out how to do it in 1982, but there's no data to back that up.
Quote:
Bill several times told about fantastic designs but IMHO an engineer should have just shown them.
Huh? I don't get this at all. Bill has grander plans, but he's not going to give away his secrets.
Quote:
IMHO the main flaw of the 65816 is its special use of the first 64 KB of memory and not optimal work with addresses above 64KB. It also should have been much faster, IMHO. It was quite possible to speed up it later, IMHO.
I think you are playing revisionist history. In 1982, The 8086 was 5MHz, but the CPU speed of a 8080-ish CPU is not completely equivalent to a 65/68XX CPU speed. 8080-family CPUs expected to run memory slower than the CPU speed. So, the core CPU could be made faster. You could argue the 65/68XX should have switched to that kind of design, but that probably would have broken lots of stuff. (and you already argued that fixing bugs that caused slowdowns and incompatibilities were useless, so you'd be even less enthused about having MOS or WDC decouple memory access from clock speed). So, even in 1982 or so, 10MHz (probably RAM speed of 2-3MHz) was pretty good, and 6502 was always the cheap CPU, not the speed demon. I think it was adequately fast at the time. Now, if you want to argue the CPU should have required a 48 pin DIP carrier and brought out the 16 bits of the data bus directly, and had an internal 16 bit ALU, there's probably more weight to that argument.
The 64kB direct page and the inability to work better with > 64kB memory are valid points, though I think they have to be viewed in the complex balance of existing code versus new functionality. At least it's something debatable.
Quote:
I can't agree with you about the market role. The 6502 and most other processors were designed to form market, not to follow it.
The NMOS 6502 was, but not the CMOS 65C02. MOS had given up on the NMOS 6502, because they were now part of CSG, and CSG didn't care. Their fab was old and outdated, Commodore didn't want to sell ICs or CPUs, they saw more market in selling computers. Thus, the NMOS 6502 effectively died once the Peddle team disbanded. CSG wrung every ounce of value they could from the CPU, and was happy to take the royalties from the Rockwells and the SYNERTEKs of the marketplace, but no more R&D was done until 10 years later. If I remember correctly, the 65CE02 (of which the 4510 is a system on chip design that includes the 65ce02 and an MMU and some CIAs) was a further refinement of the 65C02 design by WDC, which CSG had access to due to a cross licensing agreement with WDC. The entire 64DX project looked like a last ditch effort to pick up more of the low end of the market, like a ZX-81 for the late 1980's, early 1990s. I further suspect that Bowen and others who worked on the 64DX brought the 65ce02 in the back door by suggesting it would be useful for Amiga peripherals (like the A2232 serial card it was eventually used in), but perhaps the team got the go-ahead on their own to update the CPU. In any event, it was too late, and half hearted at best (your argument about speeds is absolutely relevant here, since the CPU only runs at 4MHz or something, and 4MHz in 1989 or so was anemic, even for 68XX/65XX designs).
Bill, on the other hand, did not have the muscle to form a market. He was simply too small. He had to wait until the folks wanted a 65XX compatible CPU in CMOS, because that's all he had to offer. Maybe you think less of Bill because he did not go champion the 65C816 or the 65C832 or the other designs, but I don't think he ever planned to do that. He simply wanted to further the 6502, fix the bugs, and continue it's evolution. Even today, when soft cores mean anyone can push out a new processor family, WDC does not do so. They offer 65XX compatible ICs and soft cores.
Jim