To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.robotics.rcx.legosOpen lugnet.robotics.rcx.legos in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / RCX / legOS / 257
    Re: signals / legOS internals —Kekoa Proudfoot
   (...) The stack pointer must always always always point at the bottom of the stack data area, i.e. to the last valid data item on the stack. As a consequence, push val (or mov.w val,@-r7) never overwrites data. When an interrupt occurs, the first (...) (25 years ago, 23-Jun-99, to lugnet.robotics.rcx.legos)
   
        Re: signals / legOS internals —Kekoa Proudfoot
     (...) Reading this again, I should mention that pushing things on the stack asynchronously is fine, as long as the stack pointer is always in the right place, which is why it must always always always point to the location I mentioned (and seemingly (...) (25 years ago, 23-Jun-99, to lugnet.robotics.rcx.legos)
    
         Re: signals / legOS internals —Lou Sortman
     (...) I may have down and up reversed, since different machines grow the stack upward or downward, and I've worked with a few. I do have push and pop clear in my mind, though. So, yeah, down. So, by the "always" rule, nothing will ever be below the (...) (25 years ago, 23-Jun-99, to lugnet.robotics.rcx.legos)
   
        Re: signals / legOS internals —Lou Sortman
   (...) When you define a bunch of local variables (more than fit in available registers), where are they? Unless you happen to know the answer, I may have to do some more experimenting. Admittedly, it has been awhile, but the last time I was heavy (...) (25 years ago, 23-Jun-99, to lugnet.robotics.rcx.legos)
   
        Re: signals / legOS internals —Lou Sortman
     (...) I may have answered my own question here. Since the SP is adjusted before anything is actually done with the local variables, the rule about it always pointing to the last valid datum is not violated even if local variables are placed after (...) (25 years ago, 23-Jun-99, to lugnet.robotics.rcx.legos)
    
         Re: signals / legOS internals —Kekoa Proudfoot
     (...) Yes, that is correct. As for passing parameters to a function, they are simply pushed onto the stack before the function call. Therefore, the H8 stack usually looks something like e.g. this: function param sp+10 function param sp+8 return (...) (25 years ago, 23-Jun-99, to lugnet.robotics.rcx.legos)
   
        Re: signals / legOS internals —Kekoa Proudfoot
   (...) Since it sounds like it might matter to you, I should point out that the interrupt situation on the RCX is a bit more complicated than the H8 manual makes it out to be. Interrupt vectors are in ROM, but the ROM does a dispatch to interrupt (...) (25 years ago, 23-Jun-99, to lugnet.robotics.rcx.legos)
   
        RE: signals / legOS internals —Ralph Hempel
   (...) Not to put too fine a point on it, and I hope Kekoa agrees, but the "fluff" is the reason why replacement firmware works in the first place. Without the ROM vectors being dispatched through RAM pointers that are initialized by the ROM and then (...) (25 years ago, 23-Jun-99, to lugnet.robotics.rcx.legos)
 

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR