Motorola 6809: Difference between revisions
Undid revision 327731040 by Coldplay Expert (talk) - Reverting a contructive edit |
m Reverted edits by 141.117.161.160 to last revision by Coldplay Expert (HG) |
||
Line 1: | Line 1: | ||
[[Image:KL_Motorola_MC6809.jpg|thumb|200 px|1 MHz '''Motorola 6809'''P processor, manufactured in 1983.]] |
|||
{{evil}} |
|||
{{Q|I once got 3 litres of 'Tear of Student' from a single program!|A Magical Assembler Guru}} |
|||
{{Q|Motorola 6809 can cause more tears than a broken leg!|Insane Witch Doctor}} |
|||
{{Q|God Doesn't Bless Everything|Pope Benedict XIII}} |
|||
{{Q|Beware the darkside|[[Obi Wan Kenobi]] on 6809}} |
|||
{{Q|6809 leads to sadness, sadness leads to tears, and 'Tear of Student' is the path to the darkside|[[Yoda]] on Motorola 6809}} |
|||
{{Q|Where I find them Internets?!|[[Oscar Wilde]] on technology}} |
|||
The '''Motorola 6809''' is an [[8-bit]] (with some [[16-bit]] features) [[microprocessor]] [[central processing unit|CPU]] from [[Motorola]], introduced circa 1977-78. It was a major advance over both its predecessor, the [[Motorola 6800]], and the related [[MOS Technology 6502]]. |
|||
==Overview== |
|||
The Motorola 6809 is one of the most evil contraptions known to mankind. Created by the evil [[WitchKing]] Dr. [[Lester Hiraki]]<ref>http://www.ratemyprofessors.com/ShowRatings.jsp?tid=116567</ref>(see [[Witchcraft]], [[Satanism]]), the 6809 was made using: 3 eyes of newt, 2 frog legs, 4 lizard tails, and an unknown amount of 'Tear of Student'. In order to be able to program using a 6809, a student must first feel the wrath of black assembly magic. Formed in a cauldron, black assembly magic is nearly impossible to master, as it was deemed obsolete two years before it was ever created. However, one Guru, Dr. Hiraki, has mastered the ancient art of black magic, and has kept the assembly compiler alive with aid from an evil witch doctor, [[Comrade]] [[Stalin]]. |
|||
[[Image:motorolawitch.JPG|Logo printed on all Motorola Witchware|right|thumb|196px|Logo printed on all Motorola Witchware]] |
|||
==Description== |
|||
[[Image:6809registers.png|thumb|300px|6809 programming model, showing the [[processor register]]s.]] |
|||
Among the significant enhancements introduced in the 6809 were the use of two 8-bit [[Accumulator (computing)|accumulator]]s (A and B, which could be combined into a single [[16-bit]] [[processor register|register]], D), two 16-bit [[index register]]s (X, Y) and two 16-bit [[stack (data structure)|stack]] [[Pointer (computing)|pointer]]s. The index and stack registers allowed very advanced [[addressing mode]]s. [[program counter|Program counter]] relative addressing allowed for the easy creation of [[position-independent code]], while a user stack pointer (U) facilitated the creation of [[Reentrant (subroutine)|reentrant]] code. |
|||
The 6809 was [[Source code compatibility|source-compatible]] with the 6800, though the 6800 had seventy-eight instructions to the 6809's fifty-nine. Some instructions were replaced by more general ones which the [[Assembly language#Assembler|assembler]] translated into equivalent operations and some were even replaced by [[addressing mode]]s. The [[instruction set]] and register complement were highly [[Orthogonality#Computer science|orthogonal]], making the 6809 easier to program than the 6800 or 6502. |
|||
__TOC__ |
|||
Other features were one of the first hardware-implementations of a multiplication instruction in an MPU, full 16-bit arithmetic and an especially fast [[interrupt]] system. The 6809 was also highly optimized, up to five times faster than the 6800 series CPUs. Like the 6800, it included an undocumented address bus test instruction that would exceed the limits of some memory controllers, evoking the nickname [[Halt and Catch Fire|Halt and Catch Fire (HCF)]]. |
|||
==Tear of Student== |
|||
Tear of Student is one of the rarest, most powerful ingredients used in witchcraft. Fueled by sadness, Tear of student can become saltwater if the original host has prospered and rid themselves of sadness through the aid of [[Christianity]]. Through the late 1970's, there was a drought in 'Tear of Student'. This was because of the ending of the Vietnam War made everyone happy. As a result, the almost extinct 'Tear of Student was worth its weight in gold. This is why the Motorola 6809 was made. With Witches everywhere in dire need of Tear of Student, one such which came up with a solution. Using a high amount of Tear of Student, he created a processor so evil, so devastating, that no person could possibly gain any joy of it. All that is left is sadness, and so many tears from students, and the tear shortage could be cured. |
|||
The 6809's state machine and control logic, unlike many processors of the day, was mostly implemented using a large [[Programmable logic array|PLA]] and asynchronous [[Hardwired control|random logic]] (a trait of early designs and, partly, of [[RISC]]) rather than [[microprogram|microcoded]]. The 6809 used the two-phase [[clock cycle]] directly as the basic machine cycle. |
|||
==Development== |
|||
As described briefly, The Motorola 6809 was deemed obsolete by mathematicians and computer scientists at least 2 years before invention. However, the evil witch doctor managed to not only make the device, but allowed the compiler to continue operation. The witch doctor added two more operational instructions, doubling the total instruction set. The assembler itself is old and heavy, and operates at a very hot temperature, comparable to the fires of [[Hell]]. As a result, the 6809 can be used as a heat source to boil cauldrons of water, melt metal, and cook eggs. |
|||
Witches began drawing up the specifications of the 6809 board early 1979. It had to be slower than a turtle, yet powerful enough to be able to handle black magic. A speed of 1 MegaHertz was selected, however, the true speed is closer to 666 Hertz. The Registers are 8-Bits in size, although some would argue that they are either 4 or 16. It doesn't matter, though, as the processor takes ages to add or subtract any 4, 8, or 16 bit number. [[Skynet|Motorola 6809 beta 2.0]] (scheduled in 2020) will have the capability of dividing by zero. |
|||
Although this means fewer clock cycles per instruction compared to the [[Z80]] for instance, the latter's higher resolution state machine allowed clock frequencies 3-5 times as high without demanding faster memory chips, which was often the limiting factor; it could combine two full (but short) clock cycles into a ''relatively long'' memory access period compared to the clock, while the more asynchronous 6809 instead had ''relatively short'' memory access times: depending on version and speed grade, approximately 60% of a single clock cycle was typically available for memory access in a 6809 (see data sheets). |
|||
==Production== |
|||
Produced in the deepest caverns of [[ENG-245]], the 6809 began mass production in late 1979. Production had only ceased when 'Tear of Student' supply ran out in 1981. It is for this reason that only 20 boards have been produced, and most of them reside in ENG-211. |
|||
It has been rumoured that each of the 32 registers had been constructed before the processor had been mixed with the secret ingredients. Each register is made by mixing [[snake gravy]] and penguin wings together, with an unknown amount of 'Tear of Student'. This makes the registers withstand the enormous heat created by the obsolete processor, as well as protect the board from salt water tears that may drop on the 6809 board by a depressed student. |
|||
[[RAM]] on the Motorola 6809 is virtually non-existent, and relies chiefly on the power of magic. This is why it is impossible to find out what is stored on the registers or RAM. |
|||
The 6809 had an internal two-phase clock generator (needing only an external crystal) whereas the 6809E needed an external clock generator. There were also variants such as the 68A09(E) and 68B09(E); the internal letter indicates the processor's rated clock speed. |
|||
System administrators and support tech cannot fix a disabled 6809 processor, as black [[mage]] must resurrect the processor's fallen soul. |
|||
[[Image:6809board.jpg|right|thumb|200px|The Board in action. Note the red Ryerson Logo on bottom right. Number indicates Litres of Tear of Student board has produced]] |
|||
With 'Tear of Student' on the rise, it has been rumoured that more [[updated]] 6809 boards will be made. |
|||
==History== |
|||
==Introduction to schools== |
|||
The Motorola 6809 was originally produced in 1 [[megahertz|MHz]], 1.5 MHz (68A09) and 2 MHz (68B09) speed ratings. Faster versions were produced later by Hitachi and perhaps others. It is sometimes considered to be the conceptual precursor of the [[Motorola 68000]] family of processors, though this is mostly a misunderstanding. The 6809 and 68000 design projects ran partly in parallel and have quite differing architectures as well as radically different implementation principles. However, there is a certain amount of design philosophy similarity (eg, considerable orthogonality and flexible addressing modes), some [[assembly language]] syntax resemblance, as well as opcode mnemonic similarity, but the 6809 is a derivative of the 6800 whereas the 68000 was a totally new design. An 8-bit data bus version of the 68000 (ie, the [[68008]]) was intended for use in future 8-bit designs. In that respect, the 6809 was rather quickly an evolutionary dead-end. |
|||
The 6809 design team believed that future system integrators would look to off-the-shelf code in ROMs to handle common tasks. An example of this might be binary [[floating point]] arithmetic, which is a common requirement in many systems. In order to speed time to market, common code modules would be purchased, rather than developed in-house, and integrated into systems with code from other manufacturers. Since a CPU designer could hardly guarantee where this code would be located in a future system, the 6809 design focused heavily on support of [[position-independent code|position-independent]], [[reentrant (subroutine)]] code that could be freely located anywhere in the memory map. This expectation was, in reality, never quite met: Motorola's only released example of a ROM'd software module was the MC6839 floating-point ROM. However, the decisions made by the design team made for a very powerful processor and made possible advanced operating systems like [[OS-9]] and [[UniFlex]], which took advantage of the position-independent, re-entrant nature of the 6809. |
|||
[[Image:6809screen.jpg|left|thumb|200px|Two boards have mercilessly surrounded a Pentium 3 and corrupted it. Effects of blurriness to the camera caused by [[witchcraft]].]] |
|||
However, upon its introduction to schools, nearly all universities refused to teach their students this chip, as [[suicide]] and [[drug use]] had gone up 200%. Upon reception of the chips, the Ryerson staff quickly realized that evil force radiating off of the chip, and tricked the evil witch doctor to banish all but 15 boards. The remaining boards were too powerful in black wizardry, that the only way to hide them from first year students was to lock the 6809 chipset boards in the darkest corners of ENG-211. Paired up with the 6809 boards are old [[Pentium III]] that have ancient serial ports. It has been rumoured that the presence of the Motorola 6809 has corrupted these once peaceful relics, causing them to deleted student's files and crash before saving homework. |
|||
The 6809 was used in Commodore's dual-CPU [[Commodore PET#SuperPET 9000 series|SuperPET]] computer, and, in its 68A09 incarnation, in the unique vector graphics based [[Vectrex]] home [[video game console]] with built-in screen display. The 6809E was used in the [[TRS-80 Color Computer|TRS-80 Color Computer (CoCo)]], the [[Acorn System 2]], 3 and 4 computers (as an optional alternative to their standard [[MOS Technology 6502|6502]]), the [[FM-7|Fujitsu FM-7]], the [[Wales|Welsh]]-made [[Dragon 32/64]] home computers (clones of the CoCo), and the [[SWTPC]], [[Gimix]], [[Smoke Signal Broadcasting]], etc. [[SS-50]] bus systems, in addition to several of Motorola's own [[EXORmacs]] and [[EXORset]] development systems. In France, [[Thomson SA|Thomson micro-informatique]] produced a series of micro-computers based on the 6809E (TO7, TO7/70, TO8, TO8D, TO9, TO9Plus, [[Thomson MO5|MO5]], MO6, MO5E and MO5NR). |
|||
==Operating a 6809== |
|||
The user may never be able to control a 6809, IT CONTROLS YOU! Only with the possession of the Crystal Ball Compiler System, ([[CBCS]]) may an evil genius in dark magic may assemble code on a 6809. A user must first plug in the power of the 6809 board, link the serial port to the host computer, and then cry. The 6809 is fueled by sadness and [[Pikachu|electricity]]. |
|||
[[Image:6809display.jpg|right|thumb|200px|Ryerson 6809 display. Although the board seems confused, it is the student who is confounded.]] |
|||
=== Timing delays=== |
|||
The 6809 needs timing delays to waste a user's time. This has been proven by clinical study to not only increase frustration and sadness, but also decrease knowledge of black magic. A user needs to write a timing delay to make the 1 [[MHZ]] processor stop, while more crying is induced. This makes the processor a powerful collector of 'Tear of Student'. Timing Delay Routines (TDR) are always executed in three's, because of magical reference. They are always called DELAY, so the user may never get confused why he is waiting. |
|||
===Subroutines=== |
|||
A [[subroutine]] is a small routine sandwich. In 6809 syntax, a subroutine can do many things that normal line-by-line assembly magic cannot. These small sandwiches allow the user to jump to different areas of the code, performing various actions. |
|||
Branching to subroutines is the most effective way to achieve success, although success with any Motorola 6809 program is subjective. |
|||
====Types of subroutines==== |
|||
* Subroutine Sandwich: 2 slices of bologna, one strip of [[bacon]], Dijon mustard, all on a baguette. The most useful sandwich, it is most common in all code excerpts |
|||
* Racist Subroutine: Many assume the statement BNE (Branch if not equal) refers to equality of [[Human Rights]]. Since this will never be achieved, this condition is always false. Rumored to be a [[McDonald's]] McRib sandwich. |
|||
[[Image:6809serialsam.jpg|right|thumb|200px|Serial port located on 6809. No one knows how to disconnect them.]] |
|||
In addition to home computers and game consoles, the 6809 was also utilized in a number of arcade games released during the early to mid 1980s. [[Williams (gaming company)|Williams Electronics]] was an especially prolific user of the processor, which was deployed in arcade hits such as ''[[Defender (arcade game)|Defender]]'', ''[[Joust (video game)|Joust]]'', ''[[Sinistar]]'', and ''[[Robotron: 2084]]''. Williams also utilized the processor in many of its [[Solid state (electronics)|solid-state]] [[pinball]] machines; a specialized version of the 6809 CPU formed the core of the successful [[Williams Pinball Controller]]. |
|||
===Code Excerpts=== |
|||
SIGH EQU $CFDC |
|||
EMO EQU $CFDD |
|||
CRY LDS #CRY |
|||
BSR HIRAKI |
|||
RTN |
|||
HIRAKI LDB TEAR |
|||
LDX #SAD |
|||
SOB LDA ,X+ |
|||
BSR WITCH |
|||
DECB |
|||
BNE SOB |
|||
RTS |
|||
WITCH PSHS B |
|||
ENG245 LDB EMO |
|||
ANDB #$10 |
|||
BEQ ENG245 |
|||
STA SIGH |
|||
PULS B |
|||
RTS |
|||
SAD FCB $41,$76,$6F,$69,$64,$20,$45,$4E,$47,$32,$34,$35 |
|||
TEAR FCB 13 |
|||
END |
|||
Software development company [[Microware]] developed the original [[OS-9]] operating system (not to be confused with the more recent [[Mac OS 9]]) for the 6809, later porting it to the 68000 and i386 series of microprocessors. |
|||
This program does nothing useful, and with only the most powerful witch skills of black magic can it ever compile, and reveal a hidden message. |
|||
It can, however, make a student cry. Or bleed. |
|||
Here is another go at complex assembly, note the use of weird-ass syntax spawned from black magic. |
|||
Series III of the [[Fairlight CMI]] (computer musical instrument) used dual 6809 CPUs and OS9, and also used one 6809 CPU per voice card. |
|||
STRG EQU $CFDD |
|||
IORG EQU $CFDC |
|||
CR EQU 13 |
|||
LF EQU 10 |
|||
ORG $100 |
|||
DELAY |
|||
DELAY |
|||
DELAY |
|||
BSR CLEAR |
|||
LDX #STR |
|||
LDB LEN |
|||
LOOP1 LDA ,X+ |
|||
BSR OUTCHR |
|||
DECB |
|||
DELAY |
|||
DELAY |
|||
DELAY |
|||
BNE LOOP1 |
|||
LDB MAX |
|||
LDA #CR |
|||
BSR OUTCHR |
|||
LDA #LF |
|||
BSR OUTCHR |
|||
LOOP2 BSR GETCHR |
|||
BSR OUTCHR |
|||
CMPA #CR |
|||
BEQ DONE |
|||
PSHS A |
|||
DECB |
|||
DELAY |
|||
DELAY |
|||
DELAY |
|||
BNE LOOP2 |
|||
DONE LDA #CR |
|||
BSR OUTCHR |
|||
LDA #LF |
|||
BSR OUTCHR |
|||
LDB MAX |
|||
LDA #CR |
|||
BSR OUTCHR |
|||
LDA #LF |
|||
BSR OUTCHR |
|||
LOOP3 PULS A |
|||
BSR OUTCHR |
|||
DELAY |
|||
DELAY |
|||
DELAY |
|||
DECB |
|||
BNE LOOP3 |
|||
RTN |
|||
GETCHR LDA STRG |
|||
ANDA #$08 |
|||
BEQ GETCHR |
|||
LDA IORG |
|||
RTS |
|||
DELAY |
|||
DELAY |
|||
DELAY |
|||
OUTCHR PSHS B |
|||
OUT1 LDB STRG |
|||
ANDB #$10 |
|||
BEQ OUT1 |
|||
STA IORG |
|||
PULS B |
|||
RTS |
|||
CLEAR LDX #SEQ1 |
|||
CLR1 LDA ,X+ |
|||
BEQ CLOUT |
|||
BSR OUTCHR |
|||
BRA CLR1 |
|||
DELAY |
|||
DELAY |
|||
DELAY |
|||
CLOUT RTS |
|||
SEQ1 FCB $1B,'H,$1B,'J,0 |
|||
LEN FCB 21 |
|||
MAX FCB 90 |
|||
STR FCC |
|||
END |
|||
The [[Hitachi 6309]] was an enhanced version of the 6809 with extra registers and additional instructions, including block move, additional multiply instructions and hardware-implemented division. It was used in unofficially-upgraded CoCo 3 computers and a version of OS-9 was written to take advantages of the 6309's extra features: [[NitrOS-9]]. |
|||
A more full length code; it actually does nothing except waste time. Note how Delay routine "DELAY" is executed in three's. It does assemble, as this solution was copied off the door of ENG-245. |
|||
[[Hitachi, Ltd.|Hitachi]] also produced its own 6809-based machines, the MB6890 and later the S1. These were primarily for the Japanese market, but some were exported to and sold in [[Australia]]. There the MB6890 was dubbed the "Peach", probably in ironic reference to the popularity of the [[Apple II]]. The S1 was notable in that it contained [[paging]] hardware extending the 6809's native 64 [[kilobyte]] (64×2<sup>10</sup> [[byte]]) addressing range to a full 1 [[megabyte]] (1×2<sup>20</sup> byte) in 4 KB pages. It was similar in this to machines produced by [[SWTPC]], [[Gimix]], and several other suppliers. TSC produced a Unix-like operating system [[uniFlex]] which ran only on such machines. [[OS-9]] Level II, also took advantage of such memory management facilities. Most other computers of the time with more than 64 KB of memory addressing were limited to [[bank switching]] where much if not all the 64 KB was simply swapped for another section of memory. |
|||
==Usage Outside of Education== |
|||
The 6809 has been disassembled off the standard board configurement to control certain devices. For example, it may control supermarket conveyor belts, street lights, nuclear device time delays, and the timing of the [[armageddon|end of the world]]. The government has placed an embargo on 6809, restricting any further use. |
|||
Neither Motorola nor Hitachi produce 6809 processors or derivatives anymore, despite the 6809 being one of the most powerful general-purpose 8-bit CPUs ever produced. Many of its innovative features have since been copied. 6809 cores are available in [[VHDL]] and can be programmed into FPGA and used as an embedded processor with speed ratings up to 40 MHz. Some 6809 opcodes also live on in the [[Freescale]] embedded processors. |
|||
==Effects of Using the 6809== |
|||
The very first Macintosh prototype wire-wrapped by Burell contained a 6809. |
|||
===Short Term=== |
|||
Short term users of the 6809 are lucky. Brief contact only results in sadness and [[crying]] for about 2 days. Loss of appetite may occur if a user touches the board physically. Short term users are the least likely to remember the 6809 [[witchcraft]] magic, and will not suffer [[corruption]]. |
|||
Short Term Motorola 6809 [[Syndrome]] ([[STM6809S]]) is an increasing health hazard. Diagnosis of such an ailment only has one cure. The student must drop the [[computer science]] major or seek transfer. |
|||
[[Image:6809Depressed.jpg|right|thumb|200px|Short term 6809 user crying for her second day straight.]] |
|||
== |
==References== |
||
* Leventhal, Lance (1981). ''6809 Assembly Language Programming''. Osborne/McGraw-Hill. ISBN 0-931988-35-7. |
|||
Long term users are considered half witches by the [[FCC]]. Users have already let the corruption and black magic of the evil assembler sink in. They have no cure for long term users, and many seek [[Pope Benedict XIII]] for help. Signs of a long time 6809 user may be short memory, dressing emo, and severe depression. It has been rumoured the Motorola 6809 had started the [[retard|emo]] trend. |
|||
* Warren, Carl D (1980). ''The MC6809 Cookbook''. TAB Books, Inc. ISBN 0-8306-9683-0. |
|||
== |
==External links== |
||
* http://koti.mbnet.fi/~atjs/mc6809/ – Collection of 6809 instructions, emulators, tools, debuggers, disassemblers and assemblers |
|||
Advanced users are the only ones who have mastered the 6809 architecture. They are full witches and may have earned higher rank in their secret cult. They lounge in the heated confines of ENG-245.To this day, there are only 4 advanced users, one witch doctor, and one [[master]], the evil [[WitchKing]]. These people, along with their evil cult, have terrorized 3 generations of computer science majors. In total, it has been assumed they have collected a total of 1 million litres of 'Tear of Student'. If you come into contact with a advanced user, suck the life force out of them by using conductive plyers to short their circuits, which will disable the host. |
|||
*[http://tlindner.macmess.org/wp-content/uploads/2006/09/byte_6809_articles.pdf The ''BYTE'' 6809 Articles (Jan–February 1979)] ([[Portable Document Format|PDF]]) – By Terry Ritter and Joel Boney, co-designers of the 6809; ''[[BYTE magazine]]'' reproductions by tim lindner |
|||
* news://comp.sys.m6809 – Usenet [[newsgroup]] for 6809 enthusiasts |
|||
*[http://www.swtpcemu.com 6809 Emulator based on the SWTPC 6809 system] |
|||
*[http://www.lomont.org/Software/Misc/CoCo/Lomont_6809.pdf Instruction set reference for 6809/6309 (PDF)] By Chris Lomont |
|||
==Protection Against 6809== |
|||
Although there is no way to fully protect yourself from the evil sorcery, here are a few helpful tips. |
|||
Avoid sadness. Motorola 6809 is fueled by sadness, reducing sadness equals less 'Tear of Student', ruining the [[WitchKing]]'s plans. |
|||
Drop the course. Without the student being sad, 'Tear of Student' is just salt water. The witches need sadness. |
|||
Wear garlic. 6809 is an electronic [[vampire]]. Although silver or a wooden stake will not kill the 6809, garlic will melt its circuits. |
|||
If all else fails, call a [[pedophile|priest]] and confess. |
|||
{{FOLDOC}} |
|||
==Trivia== |
|||
{{Motorola processors}} |
|||
Here are some little known facts about the Motorola 6809. |
|||
===Hollywood=== |
|||
* In episode 4 of [[Texas Ranger]], the Motorola 6809 out-muscled [[Chuck Norris]] in hand to hand combat. |
|||
* The 6809 was passed up in 1996 to be James Bond. The role was given to [[Pierce Brosnan]] after the 6809 suffered a fatal divide by zero error. |
|||
* The 6809 has appeared in an episode of [[Dr. Phil]]. The episode was taken off the air by the [[FCC]]. |
|||
* Motorola 6809 was thought to be the alien in Scientology |
|||
* Motorola chipset was cast in the hit movie [[Transformers]]. It was featured as an insane pop machine and attacked 2 non-[[witch]]es. |
|||
[[Category:Motorola microprocessors]] |
|||
===Historical Trivia=== |
|||
* The Motorola 6809 was credited with the fall of the Berlin Wall. Using ancient spell techniques, the 6809 wrote a timing delay that destroyed the [[Communist]] [[Soviet Union|Russia]]. |
|||
* The 6809 was the first IC [[chipset]] in space. Flying to [[Mercury]] in 1984, one 6809 board collected up to 3 [[bits]] of data on the voyage. |
|||
* Motorola 6809 beat Hillary [[Clinton]] and Barack [[Obama]] in the Democrat Candidate race for Alaska and New Jersey. |
|||
* The Motorola 6809 rejected [[Hitler]]'s enterance into a Vienna University. |
|||
* The 6809 holds the record for longest session in [[World of Warcraft]], 320 hours straight. |
|||
[[ca:Motorola 6809]] |
|||
==Legacy== |
|||
[[de:Motorola 6809]] |
|||
The Motorola 6809 boards have no impact on anything except for increasing the world's sadness. Using out of date assembly and techniques, the board has already been replaced by the [[ENIAC]] in most operational status. The slow processors have been replaced by conventional calculators in residential sections. More and more schools have began abandoning assembly in general, as rumours of the devastation caused by the 6809 reach the surface of education. |
|||
[[es:Motorola 6809]] |
|||
As a result, Ryerson is currently the only place where these evil relics can call home, and Dr. Hiraki is the only person they may call "[[father|Otou-san]]". |
|||
[[fr:Motorola 6809]] |
|||
[[it:Motorola 6809]] |
|||
==Notes== |
|||
[[ja:MC6809]] |
|||
{{Wikipediapar|Motorola_6809}} |
|||
[[pl:Motorola 6809]] |
|||
<references/> |
|||
[[pt:Motorola 6809]] |
|||
[[ru:Motorola 6809]] |
|||
[[Category:Computers]] |
|||
[[sv:Motorola 6809]] |
Revision as of 20:55, 24 November 2009
The Motorola 6809 is an 8-bit (with some 16-bit features) microprocessor CPU from Motorola, introduced circa 1977-78. It was a major advance over both its predecessor, the Motorola 6800, and the related MOS Technology 6502.
Description
Among the significant enhancements introduced in the 6809 were the use of two 8-bit accumulators (A and B, which could be combined into a single 16-bit register, D), two 16-bit index registers (X, Y) and two 16-bit stack pointers. The index and stack registers allowed very advanced addressing modes. Program counter relative addressing allowed for the easy creation of position-independent code, while a user stack pointer (U) facilitated the creation of reentrant code.
The 6809 was source-compatible with the 6800, though the 6800 had seventy-eight instructions to the 6809's fifty-nine. Some instructions were replaced by more general ones which the assembler translated into equivalent operations and some were even replaced by addressing modes. The instruction set and register complement were highly orthogonal, making the 6809 easier to program than the 6800 or 6502.
Other features were one of the first hardware-implementations of a multiplication instruction in an MPU, full 16-bit arithmetic and an especially fast interrupt system. The 6809 was also highly optimized, up to five times faster than the 6800 series CPUs. Like the 6800, it included an undocumented address bus test instruction that would exceed the limits of some memory controllers, evoking the nickname Halt and Catch Fire (HCF).
The 6809's state machine and control logic, unlike many processors of the day, was mostly implemented using a large PLA and asynchronous random logic (a trait of early designs and, partly, of RISC) rather than microcoded. The 6809 used the two-phase clock cycle directly as the basic machine cycle.
Although this means fewer clock cycles per instruction compared to the Z80 for instance, the latter's higher resolution state machine allowed clock frequencies 3-5 times as high without demanding faster memory chips, which was often the limiting factor; it could combine two full (but short) clock cycles into a relatively long memory access period compared to the clock, while the more asynchronous 6809 instead had relatively short memory access times: depending on version and speed grade, approximately 60% of a single clock cycle was typically available for memory access in a 6809 (see data sheets).
The 6809 had an internal two-phase clock generator (needing only an external crystal) whereas the 6809E needed an external clock generator. There were also variants such as the 68A09(E) and 68B09(E); the internal letter indicates the processor's rated clock speed.
History
The Motorola 6809 was originally produced in 1 MHz, 1.5 MHz (68A09) and 2 MHz (68B09) speed ratings. Faster versions were produced later by Hitachi and perhaps others. It is sometimes considered to be the conceptual precursor of the Motorola 68000 family of processors, though this is mostly a misunderstanding. The 6809 and 68000 design projects ran partly in parallel and have quite differing architectures as well as radically different implementation principles. However, there is a certain amount of design philosophy similarity (eg, considerable orthogonality and flexible addressing modes), some assembly language syntax resemblance, as well as opcode mnemonic similarity, but the 6809 is a derivative of the 6800 whereas the 68000 was a totally new design. An 8-bit data bus version of the 68000 (ie, the 68008) was intended for use in future 8-bit designs. In that respect, the 6809 was rather quickly an evolutionary dead-end.
The 6809 design team believed that future system integrators would look to off-the-shelf code in ROMs to handle common tasks. An example of this might be binary floating point arithmetic, which is a common requirement in many systems. In order to speed time to market, common code modules would be purchased, rather than developed in-house, and integrated into systems with code from other manufacturers. Since a CPU designer could hardly guarantee where this code would be located in a future system, the 6809 design focused heavily on support of position-independent, reentrant (subroutine) code that could be freely located anywhere in the memory map. This expectation was, in reality, never quite met: Motorola's only released example of a ROM'd software module was the MC6839 floating-point ROM. However, the decisions made by the design team made for a very powerful processor and made possible advanced operating systems like OS-9 and UniFlex, which took advantage of the position-independent, re-entrant nature of the 6809.
The 6809 was used in Commodore's dual-CPU SuperPET computer, and, in its 68A09 incarnation, in the unique vector graphics based Vectrex home video game console with built-in screen display. The 6809E was used in the TRS-80 Color Computer (CoCo), the Acorn System 2, 3 and 4 computers (as an optional alternative to their standard 6502), the Fujitsu FM-7, the Welsh-made Dragon 32/64 home computers (clones of the CoCo), and the SWTPC, Gimix, Smoke Signal Broadcasting, etc. SS-50 bus systems, in addition to several of Motorola's own EXORmacs and EXORset development systems. In France, Thomson micro-informatique produced a series of micro-computers based on the 6809E (TO7, TO7/70, TO8, TO8D, TO9, TO9Plus, MO5, MO6, MO5E and MO5NR).
In addition to home computers and game consoles, the 6809 was also utilized in a number of arcade games released during the early to mid 1980s. Williams Electronics was an especially prolific user of the processor, which was deployed in arcade hits such as Defender, Joust, Sinistar, and Robotron: 2084. Williams also utilized the processor in many of its solid-state pinball machines; a specialized version of the 6809 CPU formed the core of the successful Williams Pinball Controller.
Software development company Microware developed the original OS-9 operating system (not to be confused with the more recent Mac OS 9) for the 6809, later porting it to the 68000 and i386 series of microprocessors.
Series III of the Fairlight CMI (computer musical instrument) used dual 6809 CPUs and OS9, and also used one 6809 CPU per voice card.
The Hitachi 6309 was an enhanced version of the 6809 with extra registers and additional instructions, including block move, additional multiply instructions and hardware-implemented division. It was used in unofficially-upgraded CoCo 3 computers and a version of OS-9 was written to take advantages of the 6309's extra features: NitrOS-9.
Hitachi also produced its own 6809-based machines, the MB6890 and later the S1. These were primarily for the Japanese market, but some were exported to and sold in Australia. There the MB6890 was dubbed the "Peach", probably in ironic reference to the popularity of the Apple II. The S1 was notable in that it contained paging hardware extending the 6809's native 64 kilobyte (64×210 byte) addressing range to a full 1 megabyte (1×220 byte) in 4 KB pages. It was similar in this to machines produced by SWTPC, Gimix, and several other suppliers. TSC produced a Unix-like operating system uniFlex which ran only on such machines. OS-9 Level II, also took advantage of such memory management facilities. Most other computers of the time with more than 64 KB of memory addressing were limited to bank switching where much if not all the 64 KB was simply swapped for another section of memory.
Neither Motorola nor Hitachi produce 6809 processors or derivatives anymore, despite the 6809 being one of the most powerful general-purpose 8-bit CPUs ever produced. Many of its innovative features have since been copied. 6809 cores are available in VHDL and can be programmed into FPGA and used as an embedded processor with speed ratings up to 40 MHz. Some 6809 opcodes also live on in the Freescale embedded processors.
The very first Macintosh prototype wire-wrapped by Burell contained a 6809.
References
- Leventhal, Lance (1981). 6809 Assembly Language Programming. Osborne/McGraw-Hill. ISBN 0-931988-35-7.
- Warren, Carl D (1980). The MC6809 Cookbook. TAB Books, Inc. ISBN 0-8306-9683-0.
External links
- http://koti.mbnet.fi/~atjs/mc6809/ – Collection of 6809 instructions, emulators, tools, debuggers, disassemblers and assemblers
- The BYTE 6809 Articles (Jan–February 1979) (PDF) – By Terry Ritter and Joel Boney, co-designers of the 6809; BYTE magazine reproductions by tim lindner
- news://comp.sys.m6809 – Usenet newsgroup for 6809 enthusiasts
- 6809 Emulator based on the SWTPC 6809 system
- Instruction set reference for 6809/6309 (PDF) By Chris Lomont
This article is based on material taken from the Free On-line Dictionary of Computing prior to 1 November 2008 and incorporated under the "relicensing" terms of the GFDL, version 1.3 or later.