Also, there was a popular way to implement a stack on an io port, and I probably used that
in my project. That was documented in a magazine article (perhaps also the source of the
clever routines to save and restore the flags)
Scott
Sent from my iPhone
On Dec 24, 2025, at 1:44 PM, smbaker(a)gmail.com wrote:
When I did this, I remember there was a pair of registers that I could not save,
probably de. I can look and see if I ended up with useful isr code in my project. Maybe
the real Intended use is to be able to halt and resume on interrupt.
There was a way to cleverly restore the flags.
My isr code is in
https://github.com/sbelectronics/h8/blob/master/h8-8008/asm/fpanisr.inc
Sent from my iPhone
>> On Dec 24, 2025, at 1:02 PM, Robert Armstrong via cctalk
<cctalk(a)classiccmp.org> wrote:
>>
>
>>
>> Tom Uban <uban(a)ubanproductions.com> wrote:
>> Here is the power-up/interrupt code I use on a board I built: ...
>
> Thanks! A couple of questions -
>
> It looks like this code trashes DE, so I assume the background code just can't
use those registers? So there's no way to code a truly transparent ISR?
>
> I also notice that the 8008 lacks any kind of interrupt enable F-F, nor any EI/DI
type instructions. Is that right? I guess you could always implement those with external
hardware, at least.
>
> And the big question - what's your code for restoring these flags when you exit
the ISR? The MCS-8 manual says that all ALU instructions always update all flags, with
the exception of the rotate opcodes which only change carry. It seems that means the
ZS&P flags at least would have to be restored together in one instruction.
>
> Bob
>