$2 for 10 PCBs & 24 Hour Production: https://jlcpcb.com
Clickbait title - the 6809 microprocessor has an instruction named SEX (Sign EXtend B into A). So I thought I'd get a lovely old 6809 to execute the SEX instruction repeatedly 🙂
Data sheets:
http://www.flexusergroup.com/flexusergroup/pdfs/6809ist.pdf
http://www.gbgmv.se/dl/doc/md09/MC6809_DataSheet.pdf
Clickbait title - the 6809 microprocessor has an instruction named SEX (Sign EXtend B into A). So I thought I'd get a lovely old 6809 to execute the SEX instruction repeatedly 🙂
Data sheets:
http://www.flexusergroup.com/flexusergroup/pdfs/6809ist.pdf
http://www.gbgmv.se/dl/doc/md09/MC6809_DataSheet.pdf
So sexy… going to try that whith a HD63C09E.
I thought SEX was an acronym for something
I haven't read the other comments and it's very likely already been said but you more or less answered your own (paraphrased: "Why won't it work?") question when you pointed out from the datasheet that you are operating the device way out of spec. Certain internal registers of the 6809 are DRAM-based, hence the minimum operating frequency. They're discharging thus forgetting values by not being refreshed quickly enough. That's why the datasheet stated "unexpected results". If you still want to try it, source an Hitachi 63×09 (63A09, 63B09 or 63C09) which were made later under licence using CMOS technology and are fully static (they can be halted via the clk and continue upon restart).
Ah yes my favorite computer my sex computer!
Gosh, reading these comments I think we have a lot of old timers here like me that learned to program using this chip !! Must of been around the mid 80's if I remember correctly. Way before arduino came along when things were learned from books.
That bit where you're talking about using 10K resistors for the LEDs– is the spec that you are looking at the one where you're limited in terms of source and sink current while still being able to maintain valid logic levels? If so, then you don't need to worry about that. The one you need to worry about is the spec under "Absolute Maximum Ratings", which you shouldn't go near. I'll bet lower value resistors would work just fine.
I think you were running it too slow for mul (where sex takes no effort – I think it's just copying the sign bit (1 op to read, one op to write)). MUL is a pretty heavy operation in 8 bit. I think it took more than 11 clock cycles of time and the clocks ticked again before it's finished. Up the clock speed to the minimum and see if that fixes it.
Best part about the 6809 instruction set? The PCR (Program Counter Relative) data pointer instructions. It meant that if you coded your program correctly, it could be loaded along with its data anywhere in the memory space and still run.
I remember doing that for a machine code routine on the TRS-80 "Color" computer so I could put text onto the high-res graphics screen by simply calling the machine code subroutine from a BASIC program and feeding in a string to be printed. It had all the bells and whistles, including a full IBM-style extended 256 character set and escape commands for screen clearing and cursor controls.
Ahh, "them was the days". 🙂
Julian what kind of old 8 bit CPUs do you recommend to play around with? I'm 14 and I'm interested in playing around with old chips
6809's were used in Williams arcade consoles too. Ahh the days of Sinistar and Joust. Lol
when i connect VSS (pin one to ground the whole thing turns off
I used to programm the M6800 for hand held barcode scanners…