In my newest float libs (1/2011) I am handling T this way - pushing
an poping it into r14.7. It worked with 4.0 and 4.2. Is it possible
you set the T in 4.0/4.2 within the inner interpreter only (it means
before entering a word) and now you set the T anytime when interrupt
fires- it means maybe during e.g. __SUBF12??

.....   
ld R30, Y+
ld R31, Y+

; ############
BLD R14, 7
push R28
push R29

CALL __SUBF12

pop R29
pop R28
BST R14, 7
; ############

; store B
st -Y , R31
st -Y , R30
....

P/




----- PŮVODNÍ ZPRÁVA -----
Od: "pito" <[email protected]>
Komu: [email protected], [email protected],
[email protected]
Předmět: Re: [Amforth] Interrupts - T flag, asm float problem
Datum: 26.5.2011 - 22:07:18

> 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" <[email protected]>
> Komu: "pito" <[email protected]>
> 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
> > 
> 
> 


-- 
IHNED.cz je nový, přehlednější a rychlejší. Přesvědčte se na:
www.ihned.cz




------------------------------------------------------------------------------
vRanger cuts backup time in half-while increasing security.
With the market-leading solution for virtual backup and recovery, 
you get blazing-fast, flexible, and affordable data protection.
Download your free trial now. 
http://p.sf.net/sfu/quest-d2dcopy1
_______________________________________________
Amforth-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/amforth-devel

Reply via email to