I built a small multitasking kernel with a friend with a 68000 (m68000) in college. We implemented it on breadboards, I think with 30 or so feet of jumpers [0]. I had very little prior embedded experience, so it was trial by fire. It was a wonderful introduction to how kernels work (or at least concurrency and scheduling) at their most basic level, without having to deal with the complexity of virtual address spaces,…
> "Test condition, decrement, and branch". All in one instruction The Z80 had that too - DJNZ (Decrement and Jump if Not Zero). Standard way of writing loops.
Motorola 6800
61–70 of 127 posts
Re: Motorola 6800
#62Earlier quoted context omitted.
Some of that can be gleaned from this benchmark, published in Byte, in 1981: https://en.wikipedia.org/wiki/Byte_Sieve Results for a few 8/16 bit processors are here (and on subsequent pages): https://archive.org/details/byte-magazine-1981-09/page/n193/...
I ran the C version of this benchmark using llvm-mos's Clang for the 6502. The results: 21.4 seconds 5793 bytes Which is middle of thepack for the Z80 benchmarks, but well below the 6502 ones. We're also using a slightly tweaked embedded printf written in C, so this could probably be improved somewhat there, sans any compiler changes.
Re: Motorola 6800
#63Aha, an 8-bit CPU post that isn't about the 6502 or Z-80!
Where’s the 8051 love?
Re: Motorola 6800
#64Re: Motorola 6800
#65I built a small multitasking kernel with a friend with a 68000 (m68000) in college. We implemented it on breadboards, I think with 30 or so feet of jumpers [0]. I had very little prior embedded experience, so it was trial by fire. It was a wonderful introduction to how kernels work (or at least concurrency and scheduling) at their most basic level, without having to deal with the complexity of virtual address spaces,…
Re: Motorola 6800
#66(I think the guy with the DREAM-6800 ended up making a motza making poker machines)
Re: Motorola 6800
#67I built a small multitasking kernel with a friend with a 68000 (m68000) in college. We implemented it on breadboards, I think with 30 or so feet of jumpers [0]. I had very little prior embedded experience, so it was trial by fire. It was a wonderful introduction to how kernels work (or at least concurrency and scheduling) at their most basic level, without having to deal with the complexity of virtual address spaces,…
> "Test condition, decrement, and branch". All in one instruction The Z80 had that too - DJNZ (Decrement and Jump if Not Zero). Standard way of writing loops.
Re: Motorola 6800
#68Earlier quoted context omitted.
Well, it was the predecessor :)
There was the 6809 in between. I remember BYTE magazine's cover story, "A Microprocessor for the Revolution". Well, not quite, as it turned out! :)
As it was necessarily monotone, games came with clear plastic color overlays for the screen.
6809 was notable as the first 8-bit microprocessor with a multiply instruction: 8x8->16 bits.
Re: Motorola 6800
#69https://github.com/BallySternOS/BallySternOS
i've started working on a derivative project using an rp2040 instead of the avr with hopes of offloading the 6800 bus work to a pio
Re: Motorola 6800
#70With the optics of _compiled_ code, how do the various 8-bitters stack up? (6809/6811, 65C02, Z80, H8, ...)? One would have to account for the frequency allowed by the ISA at iso-technologies (which makes including AVR somewhat tricky). I only have experience with Z80 and 65C02 and I believe the consensus is that a 4 MHz Z80 beats a 2 MHz 65C02, but neither is a particularly nice compiler target.
I just don't think any of the 8-bits made good compiler targets. At least not C compilers. Not enough registers, even in the 6809.
There was a C compiler that kept one of the 6502 index registers zero at all times, just to have a zero handy.
This use of a little interpreter to provide a higher-level instruction architecture to program to was really, really common in the 50s and 60s. The Apollo AGC computer that landed on the moon was mostly programmed that way. It seems surprising that with memory so tight, they would use up so much of it for the virtual machine interpreter, but instructions for that could be much more compact than native code. It made a slow computer even slower, but they all felt fast back then.
Steve Wozniak burned a little interpreter like that into the Apple ][ ROM, just smart enough for dumb jobs like copying blocks of memory. It used a reserved fragment of the zero page as its registers.