[Coco] Are MC68B09E's and HM63C09E's as well as various support chips still available?
John Kent
jekent at optusnet.com.au
Sat May 26 09:10:43 EDT 2012
On 26/05/2012 9:59 PM, jdaggett at gate.net wrote:
> John Kind of in the same mode as you are. I started some ideas on a
> 6309 instruction set. I have done little with it over the past year.
> Right now I am trying to get some PCB designs for an automated
> Christmas display this year. Starting to get through the busiest time
> of the year for work and can get some extra time later this summer
> maybe I can resume that work. I kind of like that Xess XuLA board.
> Thanks for the tip on that. Better price and a bit more simpler than
> Enterpoint's Craignell modules. Outside the SDRAM, it is a neat little
> module. james
Hi James,
I've implemented the E & F registers and the W register and dual operand
instructions. I think I implemented the additional indexing modes, but
I'll have to check that. There are a few extensions to the indirect
absolute addressing mode that use the additional bits in the indexing
byte to auto increment the W register, and a few other W addressing
modes that i have not implemented yet.
I have yet to implement the mode register. It talks about native mode,
which I assume is 6309 mode. It seems a bit back to front as I would
have thought native mode meant that it ran in 6809 mode. I thought I'd
use that flag to introduce some idle cycles to make the 6809 mode more
cycle accurate.
I've yet to implement the AIM, OIM, TIM and the other one whatever it
is. There are the block move instructions yet to come and the bit
operators (that do some interesting things) as well as the multiply and
divide instructions. I have implemented a 32 bit divide as a separate
module and I've implemented a separate hardware multiply using the
hardware multipliers in the FPGA. I thought I might implement a
multiplier using shift and adds, which would be slower than using
hardware multipliers but might be more cycle accurate and won't require
special features in the FPGA.
I've made the CPU so you can specify the number of data and address
bits. 8 bit data bus and 16 bit address bus in the default minimum.
Since the number of cycles in the multiply or divide will depend on the
size of the data or accumulator, I can't code the multiply and divide
into to state sequencer as i have done in the past as the states are
enumerated and aren't dynamic, as far as I'm aware. There may be ways
around that, but it will require more investigation on my behalf.
The block move instructions are interruptable. If you interrupt during a
block transfer, it re-runs the instruction using the current register
values on return, so that presents some challenges in the design of the
interrupts.
A start stop approach is not good for maintaining where I am in the
design, but other commitments pop up that need attention. I tend to
spread myself a bit thin at times with too many different projects on
the go but at least it maintains my interest.
John.
.
--
http://www.johnkent.com.au
http://members.optusnet.com.au/jekent
More information about the Coco
mailing list