MC68HC11 and the HCSim11 simulator

  • Thread starter Thread starter addle_brains
  • Start date Start date
  • Tags Tags
    Simulator
Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
7 replies · 5K views
addle_brains
Messages
8
Reaction score
0
Hey everyone, new here.

I am currently doing an assignment to write a program in assembly for the MC68HC11 microcontroller using the HCSim11 simulator. The program must make use of the IRQ request line. On Strobe A rising edge, a count from 0 to a set maximum (the maximum is set by switches PC0 - PC4) will begin and display the numbers on the LCD screen.

Now, I know pretty much how to do this. I had the program working and all, but I made some changes according to the assignment guidelines and now I get an error. The program waits for an interrupt, and when I switch strobe A on, i get a warning:

"The PC is placed on an address outside the list window. The disassembler window is made active so you can still trace the program counter."

I have retraced steps, followed examples and I cannot figure out how to fix this, let alone what it means. Any help would be great, seeing as people in my course, including instructors, are not offering any. Googleing has been fruitless.
 
Physics news on Phys.org
It means the program counter (PC) has been changed to a location that's outside the boundaries of your memory. In other words, you jumped to a memory location that doesn't exist.

Chances are, you set up some kind of an interrupt vector, and that vector is incorrect.

- Warren
 
I have set up an IRQ and RESET vectors, $FFF2 and $FFFE respectively,as per the assignment details. Yet, when the interrupt is set, I still get the error. Can I submit my code and someone could maybe tell me what's wrong?
 
The assignment specifications request that we assign interrupt and RESET vector addresses (among others including LCDDATA and Port controls) thusly:


IRQ EQU $FFF2 IRQ vector
RESET EQU $FFFF RESET vector
 
Last edited:
In my code? I can't really remember, I'm not at home, but just stuff like LDAA commands or CLRA. The memory map says that those addresses are for ROM so it shouldn't matter, should it?
 
Well, when your interrupt request is activated, the microcontroller jumps to whatever address is stored in $FFF2-3. You should probably know what's in those memory locations, so you know where the jump is going.

- Warren