From: pito <pi...@vo...> - 2011-05-26 20:07:29
|
Matthias, I do understand.. The point is not how huge the asm snippets are, but that the .asm user cannot use the status register freely. As the speed of the amforth is concerned, you know well the floating point without fast asm. libraries is not usable. Maybe as a floating point l'art pour l'art exercise..P. ----- PŮVODNÍ ZPRÁVA ----- Od: "Matthias Trute" <mt...@we...> Komu: "pito" <pi...@vo...> Předmět: Re: [Amforth] Interrupts - T flag, asm float problem Datum: 26.5.2011 - 21:52:12 > Hi Pito, > > > I need the Status Register as well, of course > > (;-)). > > > It cannot be changed during an interrupt event > > (you are manipulating > > > the T flag there). > > That is part of the magic how the forth VM > synchronizes interrupt > handling with the controller state. Its not a > convential way, yes. > > > Imagine you run a routine and somebody changes a > > flag there in SR. > > No problem. Remember: amforth is a runtime > environment for > forth code, not for (huge) assembler code > snippets. They > are useful, no doubt, but they must follow the > rules > (expressed and implied ones). > > > Would it be possible to use, as the interrupt > > signalling, a bit outside the status > > register??P. > > > Not really. There is nothing as speedy as the > status > register based jumps. And the inner interpreter > checks > that interrupt signalling bit every time it is > called. > Speed is a must-have there. > > What about you? Why do you not change the code to > use > something else? e.g. some empty/ununsed/pushed > register? > floating point division is not well known for > speed, regardless > of the implementation..... > > You could even disable interrupts during your > assembly code, thats > not really a smart solution but it will prevent > collisions. > > Matthias > |