Hi, straight to the point, i'm working on my digital clock project using Flite 68k microprocessor. About a week now thinking what is wrong with my coding. The problem is as i run the coding it will state *** ADDRESS ERROR - ACCESS = 00400587 . Im a newbie,so did i miss something basic here? Tq.

Are you trying to move a word or a long value to that address?

A number of modern processors do not allow you to store multi-byte values (such as a 32-bit int) on an odd address.

yes.. i try to move $18, for seven segment display. Did not have any address error when i move $3F. I'm very confused.

So $3F was stored at 00400586 ?

Did you do a mov.b ?

Perhaps you should also look at your documentation to see which addresses are actually valid for your 7-seg display.

It's not necessarily guaranteed that consecutive segments of your display are mapped to consecutive memory addresses.

Yes,it stored in that address.
I use move.b for both $3F and $18
I actually tested each segment for that very reason.


move.b #$18,PBDR

the seven segment will display 0
but as I write the value in the display table it state address error

I think the only thing to do at the moment is check the definitions of things like PBDR with the actual hardware.

Another reason for address errors is that there is no memory at the given address.

Another possible reason is that all the segments are at the same address, and it takes several writes (possibly with delays between writes) to the same address to set each digit in turn.

Does the hardware you're using (complete with 7-seg displays) have a specification / data sheet on the web somewhere?

Without specific hardware details (and more than 1 line of code), I can't say much else.

Owh.. sorry.. here i attach the programming and hardware schematic. I think there is no problem with the hardware but take a look at it.

Several things you need to check

Move.b	    #$04,PADR
	Move.b	    0(A3,D3),PBDR

	Move.b	    #$02,PADR
	Move.b	    0(A4,D4),PBDR

This is missing bsr Delays

> Head Move.l #555556,D7
As far as I can tell, this is never called.

> bsr Delays
Did you set the stack pointer to point to some usable memory?
Without a meaningful stack pointer, you can't call functions.

> cmpi.b #12,D4
12 seems a rather large number for a single digit.

Oh and I forgot to mention, when you get to 10, you need to reset back to 0 (say, for seconds).
And obviously, when you get to 6 for centi-seconds (and so forth).

Your circuit is wrong. You've no current limiting resistors at the base of the transistors, which causes the chip to drive them at it's maximum output high current, which will cause it to overheat.
BJTs are current controllled, not voltage controlled.

Also, the 68000 output high drops to 2.4V when it's only sourcing 400uA.