OpenCores
Issue List
Program Memory bank can be switched during interrupt #6
Closed arniml opened this issue over 20 years ago
arniml commented over 20 years ago

Affected releases: 0.1 BETA, 0.2 BETA

During an interrupt service routine (i.e. after vectoring to location 3 or 7 of the Program Memory and befor executing the RETR instruction) the Program Memory bank can be switched by executing a JMP or CALL instruction. These instructions honour the current state of the Program Memory Bank Flag and thus switch the Program Memory bank upon execution.

This violates the MCS-48 User's Manual Section 3.1.2 "Extended Program Memory Addressing" which states that the Memory Bank Flag is not taken into account for JMP and CALL during interrupt. Instead, bit 11 of the Program Counter is always held to '0'.

Fixed in: int.vhd 1.2 decoder.vhd 1.14 Updated regression test: black_box/mb/int Fix will be included in next release.

arniml commented over 20 years ago

The i8039 emulator has been fixed as well. It contained an error related to the handling of MB after return from the interrupt service routine with RETR.

Fixed in i8039.c 1.6

arniml was assigned over 20 years ago
arniml closed this over 20 years ago

Assignee
arniml
Labels
Bug