[Coco] 6309's FSWI

T. Franklin tim at franklinlabs.com
Fri May 3 13:50:24 EDT 2013


My bad, that was the NEC V series. Brain is still working at 8 bit while my fingers are running at 32 bit. -----Original Message-----
From: T. Franklin [mailto:tim at franklinlabs.com]
Sent: Friday, May 3, 2013 12:46 PM
To: 'CoCoList for Color Computer Enthusiasts'
Subject: Re: [Coco] 6309's FSWI

The Hitachi V series processors did something similar in hardware. There were (I think) four copies of all the registers. One set for each hardware interrupt. Before enabling the interrupts after reset, you preload the interrupt bank registers with the routines addresses and states. When an interrupt hits, the runtime register bank pauses right where they were. The the interrupt bank immediately takes over. This meant that there was no overhead in processing interrupts. No register pushes or pulls. It all happens in a single clock cycle. The RTI would automatically reset the interrupt registers to their initial settings and bring the normal set of registers back online without missing a beat. I always thought that was a cool idea.-Tim-----Original Message-----From: L. Curtis Boyle [mailto:curtisboyle at sasktel.net]Sent: Friday, May 3, 2013 12:25 PMTo: 'CoCoList for Color Computer Enthusiasts'Subject: Re: [Coco] 6309's FSWINot a bad idea. When developing NitrOS9, we used it for debugging (either dumping values, or the PC, periodically to it in code, to figure out where code was going, how it got stuck in infinite loops, etc.).L. Curtis Boylecurtisboyle at sasktel.netOn May 3, 2013, at 11:16 AM, tim lindner wrote:> I was thinking today about the 6309's V register. I decided you could use> it to make a "Fast Software Interrupt" instruction.> > So the idea is you have a subroutine that will be called often, but you> don't want to inline. You would put the address of the subroutine in V and> EXG V,PC to call it.> > The routine would stack any registers it uses, perform the function, the> unstack the registers and then EXG V,PC to return to the main program. You> would save one additional register stacking because you wouldn't use V for> any other purpose.> > You could also achieve something like self-modifying code by changing the V> register to point to alternative subroutines.> > -- > tim lindner> > --> Coco mailing list> Coco at maltedmedia.com> http://five.pairlist.net/mailman/listinfo/coco> --Coco mailing listCoco at maltedmedia.comhttp://five.pairlist.net/mailman/listinfo/coco--Coco mailing listCoco at maltedmedia.comhttp://five.pairlist.net/mailman/listinfo/coco



More information about the Coco mailing list