A86: Memory Lock
[Prev][Next][Index][Thread]
A86: Memory Lock
The [sqrt]KEY program is called (under the right conditons) after the
_getkey (or possibly _getky in certain calc states) is called and before
the key press is checked. This is a model of how to create and use
[sqrt]KEY. I haven't tested it though, so proceed with cation.
;To create the program:
ld hl,op_info
rst 20 ;[sqrt]KEY -> OP1
ld hl, code_end - code
call $474f ;creates program
set 6,(iy+24) ;enables program
ret
op_info:
.db $12, $4,$10
.db "KEY",0
;Here's what some possible [sqrt]KEY code could look like:
;(this is intended to override the enter keypress in the delete state)
code:
call $479f ;special call
ld a,($d625) ;don't ask me
bit 0,(iy+$20)
jr nz,skip_key ;skip if flag not set
push af ;push getkey
ld a,($c1b4) ;load calc state
cp $23 ;check if in delete state
jr nz,skip_key
pop af ;pop getkey
cp $06 ;check for enter press (might be $09
instead?)
jr nz,skip_key
xor a ;0 out the getkey
skip_key:
cp a ;can't hurt
ret
code_end:
Follow-Ups: