Re: A86: Re: sqrtKEY


[Prev][Next][Index][Thread]

Re: A86: Re: sqrtKEY




It is definitely called repeatedly.  That is my primary problem.  I
can't do much testing on it becuase I can't inject any keycodes to see
where it's getting trashed, because most of the time it is receiving
null keypresses.


Chris Phelps wrote:
> 
> David Phillips wrote:
> 
> > It is called by _get_key, so, yes, it is always called.  I believe that A
> > contains the key pressed, so if it is zero, you want to immediately return.
> >
> 
> Im not so sure that this is so.  Im pretty sure that it is only called if a key
> is pressed. Maybe I'll do some disassembly tonight...
> 
> >
> > > I'd wanted to add memory lock abilities to Lockdown, a password protect
> > > program.  After I looked at the source to Dux's Yugi2 I got the general
> > > idea of how to do it (I modified it a bit).  But once installed and
> > > active, the sqrtKEY program messes up my text input routine for password
> > > entry.  The calculator recieves keycodes, because EXIT and ENTER work.
> > > If I press the (2ND) key and then a key, it registers as having been
> > > pressed.  But not otherwise.  SqrtKEY is messing up my _getkeys!
> >
> > I can think of two things offhand that would cause that.  First, is that
> > you're probably trashing something important in your [sqrt]KEY program that
> > you shouldn't trash.  Second, it is re-entrant when it shouldn't be (i.e.
> > you're calling _get_key inside, and it's calling itself, etc.).  I had that
> > problem at first when playing with [sqrt]PARSE (think that is it...whatever
> > one lets you make 1 + 1 = 3 :)
> 
> I believe that your problem is that all [sqrt]Key programs are copied into
> _asm_exec_ram and _exec_asm'd.
> This means that your program will be copied back to _asm_exec_ram when the
> [sqrt]Key is finished, and the pc will be restored, but any data that you may
> have been saving in your program may be destroyed. I dont know where exactly
> your code is going wrong, but make sure that you writeback any data that needs
> to be used after a key is pressed, or put it out in the middle of _asm_exec_ram
> so that it wont get overwritten when your program is loaded back into
> _asm_exec_ram.
> 
> Later,
> Chicane


References: